{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "8ee2cb6b-d879-4dd9-a615-cbd4cca3aeaa",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-03-01T09:21:52.167536Z",
     "start_time": "2024-03-01T09:21:31.253954Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import warnings\n",
    "\n",
    "from matplotlib.ticker import PercentFormatter\n",
    "\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "%matplotlib inline\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False"
   ]
  },
  {
   "cell_type": "markdown",
   "source": [
    "# Table 1 SKU--商品"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "a8bf963cd17e3821"
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "705b7372672cb3f9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-03-01T09:21:52.244784100Z",
     "start_time": "2024-03-01T09:21:52.167536Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 'skus' table 商品信息\n",
    "skus = pd.read_csv('./JD_data/JD_sku_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3d179604f85f33eb",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-03-01T09:21:52.261009600Z",
     "start_time": "2024-03-01T09:21:52.246784500Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>type</th>\n",
       "      <th>brand_ID</th>\n",
       "      <th>attribute1</th>\n",
       "      <th>attribute2</th>\n",
       "      <th>activate_date</th>\n",
       "      <th>deactivate_date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>a234e08c57</td>\n",
       "      <td>1</td>\n",
       "      <td>c3ab4bf4d9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6449e1fd87</td>\n",
       "      <td>1</td>\n",
       "      <td>1d8b4b4c63</td>\n",
       "      <td>2.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>2</td>\n",
       "      <td>eb7d2a675a</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>acad9fed04</td>\n",
       "      <td>2</td>\n",
       "      <td>9b0d3a5fc6</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2fa77e3b4d</td>\n",
       "      <td>2</td>\n",
       "      <td>b681299668</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31863</th>\n",
       "      <td>121d8470d2</td>\n",
       "      <td>2</td>\n",
       "      <td>3daeabd2ce</td>\n",
       "      <td>3.0</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-30</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31864</th>\n",
       "      <td>e41c62189d</td>\n",
       "      <td>2</td>\n",
       "      <td>8b40ec9ab7</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31865</th>\n",
       "      <td>01d16f7678</td>\n",
       "      <td>2</td>\n",
       "      <td>e686890dbc</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-29</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31866</th>\n",
       "      <td>83fc55d93b</td>\n",
       "      <td>2</td>\n",
       "      <td>9d3465eacc</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-29</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31867</th>\n",
       "      <td>c1b1a4b058</td>\n",
       "      <td>2</td>\n",
       "      <td>65c76167e3</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>31868 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           sku_ID  type    brand_ID attribute1 attribute2 activate_date  \\\n",
       "0      a234e08c57     1  c3ab4bf4d9        3.0       60.0           NaN   \n",
       "1      6449e1fd87     1  1d8b4b4c63        2.0       50.0           NaN   \n",
       "2      09b70fcd83     2  eb7d2a675a        3.0       70.0           NaN   \n",
       "3      acad9fed04     2  9b0d3a5fc6        3.0       70.0           NaN   \n",
       "4      2fa77e3b4d     2  b681299668          -          -           NaN   \n",
       "...           ...   ...         ...        ...        ...           ...   \n",
       "31863  121d8470d2     2  3daeabd2ce        3.0          -    2018-03-30   \n",
       "31864  e41c62189d     2  8b40ec9ab7          -          -           NaN   \n",
       "31865  01d16f7678     2  e686890dbc          -          -    2018-03-29   \n",
       "31866  83fc55d93b     2  9d3465eacc          -          -    2018-03-29   \n",
       "31867  c1b1a4b058     2  65c76167e3          -          -    2018-03-31   \n",
       "\n",
       "      deactivate_date  \n",
       "0                 NaN  \n",
       "1                 NaN  \n",
       "2                 NaN  \n",
       "3                 NaN  \n",
       "4                 NaN  \n",
       "...               ...  \n",
       "31863             NaN  \n",
       "31864             NaN  \n",
       "31865             NaN  \n",
       "31866             NaN  \n",
       "31867             NaN  \n",
       "\n",
       "[31868 rows x 7 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "29e7417a-7f7d-4b77-b35a-6eabdb54defc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 31868 entries, 0 to 31867\n",
      "Data columns (total 7 columns):\n",
      " #   Column           Non-Null Count  Dtype \n",
      "---  ------           --------------  ----- \n",
      " 0   sku_ID           31868 non-null  object\n",
      " 1   type             31868 non-null  int64 \n",
      " 2   brand_ID         31868 non-null  object\n",
      " 3   attribute1       31868 non-null  object\n",
      " 4   attribute2       31868 non-null  object\n",
      " 5   activate_date    3058 non-null   object\n",
      " 6   deactivate_date  1141 non-null   object\n",
      "dtypes: int64(1), object(6)\n",
      "memory usage: 1.7+ MB\n"
     ]
    }
   ],
   "source": [
    "skus.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "dd5a81e3-17ae-473a-9f6f-62d74a1df17d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sku_ID\n",
      "de9ed6156d    2\n",
      "a234e08c57    1\n",
      "6dd9b6efc7    1\n",
      "da72d70c01    1\n",
      "8add990120    1\n",
      "             ..\n",
      "812f818701    1\n",
      "888e9ea044    1\n",
      "86b8065c68    1\n",
      "ebd622c4f3    1\n",
      "c1b1a4b058    1\n",
      "Name: count, Length: 31867, dtype: int64\n",
      "type\n",
      "2    30701\n",
      "1     1167\n",
      "Name: count, dtype: int64\n",
      "brand_ID\n",
      "198cec62a1    1231\n",
      "bd97f9a5fa    1132\n",
      "adbd559b78     952\n",
      "9b0d3a5fc6     831\n",
      "42e6445fca     627\n",
      "              ... \n",
      "d3ea7c7720       1\n",
      "3c966f9e6d       1\n",
      "e475dc56c6       1\n",
      "bfab8abd7a       1\n",
      "65c76167e3       1\n",
      "Name: count, Length: 1890, dtype: int64\n",
      "attribute1\n",
      "-      15961\n",
      "3.0     8351\n",
      "4.0     4252\n",
      "2.0     2491\n",
      "1.0      813\n",
      "Name: count, dtype: int64\n",
      "attribute2\n",
      "-        17319\n",
      "100.0     8136\n",
      "60.0      4130\n",
      "50.0       877\n",
      "70.0       473\n",
      "40.0       284\n",
      "80.0       282\n",
      "90.0       186\n",
      "30.0       181\n",
      "Name: count, dtype: int64\n",
      "activate_date\n",
      "2018-03-27    218\n",
      "2018-03-21    158\n",
      "2018-03-22    141\n",
      "2018-03-19    140\n",
      "2018-03-29    135\n",
      "2018-03-12    130\n",
      "2018-03-28    128\n",
      "2018-03-20    126\n",
      "2018-03-16    116\n",
      "2018-03-13    114\n",
      "2018-03-30    114\n",
      "2018-03-15    112\n",
      "2018-03-06    110\n",
      "2018-03-14    106\n",
      "2018-03-07    104\n",
      "2018-03-09    103\n",
      "2018-03-02    102\n",
      "2018-03-05     98\n",
      "2018-03-08     87\n",
      "2018-03-24     86\n",
      "2018-03-23     80\n",
      "2018-03-26     77\n",
      "2018-03-17     67\n",
      "2018-03-01     65\n",
      "2018-03-03     62\n",
      "2018-03-25     58\n",
      "2018-03-04     58\n",
      "2018-03-11     57\n",
      "2018-03-10     54\n",
      "2018-03-31     28\n",
      "2018-03-18     24\n",
      "Name: count, dtype: int64\n",
      "deactivate_date\n",
      "2018-03-24    140\n",
      "2018-03-23     69\n",
      "2018-03-30     69\n",
      "2018-03-27     62\n",
      "2018-03-26     59\n",
      "2018-03-21     57\n",
      "2018-03-08     50\n",
      "2018-03-29     49\n",
      "2018-03-28     49\n",
      "2018-03-19     47\n",
      "2018-03-22     45\n",
      "2018-03-20     42\n",
      "2018-03-16     40\n",
      "2018-03-13     35\n",
      "2018-03-09     32\n",
      "2018-03-10     30\n",
      "2018-03-07     27\n",
      "2018-03-05     27\n",
      "2018-03-31     27\n",
      "2018-03-12     27\n",
      "2018-03-14     25\n",
      "2018-03-02     24\n",
      "2018-03-01     21\n",
      "2018-03-17     20\n",
      "2018-03-11     18\n",
      "2018-03-15     17\n",
      "2018-03-18     13\n",
      "2018-03-06      6\n",
      "2018-03-25      6\n",
      "2018-03-04      5\n",
      "2018-03-03      3\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in skus.columns:\n",
    "    print(skus[i].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "96bddd7f-0d59-482e-a133-bd0aee9a73c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sku_ID                 0\n",
       "type                   0\n",
       "brand_ID               0\n",
       "attribute1             0\n",
       "attribute2             0\n",
       "activate_date      28810\n",
       "deactivate_date    30727\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skus.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "be3edf91-8ab6-490a-a8ca-b705780018c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>type</th>\n",
       "      <th>brand_ID</th>\n",
       "      <th>attribute1</th>\n",
       "      <th>attribute2</th>\n",
       "      <th>activate_date</th>\n",
       "      <th>deactivate_date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>a234e08c57</td>\n",
       "      <td>1</td>\n",
       "      <td>c3ab4bf4d9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6449e1fd87</td>\n",
       "      <td>1</td>\n",
       "      <td>1d8b4b4c63</td>\n",
       "      <td>2.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>2</td>\n",
       "      <td>eb7d2a675a</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>acad9fed04</td>\n",
       "      <td>2</td>\n",
       "      <td>9b0d3a5fc6</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2fa77e3b4d</td>\n",
       "      <td>2</td>\n",
       "      <td>b681299668</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31852</th>\n",
       "      <td>f845d6ab07</td>\n",
       "      <td>2</td>\n",
       "      <td>cf0544f945</td>\n",
       "      <td>3.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31853</th>\n",
       "      <td>c31fe79afa</td>\n",
       "      <td>2</td>\n",
       "      <td>bfa2c081b9</td>\n",
       "      <td>2.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31856</th>\n",
       "      <td>043942ef6f</td>\n",
       "      <td>2</td>\n",
       "      <td>98ebd5d593</td>\n",
       "      <td>4.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31859</th>\n",
       "      <td>12fe3fbdbe</td>\n",
       "      <td>2</td>\n",
       "      <td>e175e177d8</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31864</th>\n",
       "      <td>e41c62189d</td>\n",
       "      <td>2</td>\n",
       "      <td>8b40ec9ab7</td>\n",
       "      <td>-</td>\n",
       "      <td>-</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>28810 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           sku_ID  type    brand_ID attribute1 attribute2 activate_date  \\\n",
       "0      a234e08c57     1  c3ab4bf4d9        3.0       60.0           NaN   \n",
       "1      6449e1fd87     1  1d8b4b4c63        2.0       50.0           NaN   \n",
       "2      09b70fcd83     2  eb7d2a675a        3.0       70.0           NaN   \n",
       "3      acad9fed04     2  9b0d3a5fc6        3.0       70.0           NaN   \n",
       "4      2fa77e3b4d     2  b681299668          -          -           NaN   \n",
       "...           ...   ...         ...        ...        ...           ...   \n",
       "31852  f845d6ab07     2  cf0544f945        3.0      100.0           NaN   \n",
       "31853  c31fe79afa     2  bfa2c081b9        2.0      100.0           NaN   \n",
       "31856  043942ef6f     2  98ebd5d593        4.0      100.0           NaN   \n",
       "31859  12fe3fbdbe     2  e175e177d8          -          -           NaN   \n",
       "31864  e41c62189d     2  8b40ec9ab7          -          -           NaN   \n",
       "\n",
       "      deactivate_date  \n",
       "0                 NaN  \n",
       "1                 NaN  \n",
       "2                 NaN  \n",
       "3                 NaN  \n",
       "4                 NaN  \n",
       "...               ...  \n",
       "31852             NaN  \n",
       "31853             NaN  \n",
       "31856             NaN  \n",
       "31859             NaN  \n",
       "31864             NaN  \n",
       "\n",
       "[28810 rows x 7 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skus[skus['activate_date'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "242e86c64e340255",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T10:46:03.277358900Z",
     "start_time": "2024-02-28T10:46:03.248193200Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>type</th>\n",
       "      <th>brand_ID</th>\n",
       "      <th>attribute1</th>\n",
       "      <th>attribute2</th>\n",
       "      <th>activate_date</th>\n",
       "      <th>deactivate_date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>a234e08c57</td>\n",
       "      <td>1</td>\n",
       "      <td>c3ab4bf4d9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6449e1fd87</td>\n",
       "      <td>1</td>\n",
       "      <td>1d8b4b4c63</td>\n",
       "      <td>2.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>2</td>\n",
       "      <td>eb7d2a675a</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>acad9fed04</td>\n",
       "      <td>2</td>\n",
       "      <td>9b0d3a5fc6</td>\n",
       "      <td>3.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2fa77e3b4d</td>\n",
       "      <td>2</td>\n",
       "      <td>b681299668</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31863</th>\n",
       "      <td>121d8470d2</td>\n",
       "      <td>2</td>\n",
       "      <td>3daeabd2ce</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-03-30</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31864</th>\n",
       "      <td>e41c62189d</td>\n",
       "      <td>2</td>\n",
       "      <td>8b40ec9ab7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31865</th>\n",
       "      <td>01d16f7678</td>\n",
       "      <td>2</td>\n",
       "      <td>e686890dbc</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-03-29</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31866</th>\n",
       "      <td>83fc55d93b</td>\n",
       "      <td>2</td>\n",
       "      <td>9d3465eacc</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-03-29</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31867</th>\n",
       "      <td>c1b1a4b058</td>\n",
       "      <td>2</td>\n",
       "      <td>65c76167e3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>31868 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           sku_ID  type    brand_ID attribute1 attribute2 activate_date  \\\n",
       "0      a234e08c57     1  c3ab4bf4d9        3.0       60.0           NaN   \n",
       "1      6449e1fd87     1  1d8b4b4c63        2.0       50.0           NaN   \n",
       "2      09b70fcd83     2  eb7d2a675a        3.0       70.0           NaN   \n",
       "3      acad9fed04     2  9b0d3a5fc6        3.0       70.0           NaN   \n",
       "4      2fa77e3b4d     2  b681299668        NaN        NaN           NaN   \n",
       "...           ...   ...         ...        ...        ...           ...   \n",
       "31863  121d8470d2     2  3daeabd2ce        3.0        NaN    2018-03-30   \n",
       "31864  e41c62189d     2  8b40ec9ab7        NaN        NaN           NaN   \n",
       "31865  01d16f7678     2  e686890dbc        NaN        NaN    2018-03-29   \n",
       "31866  83fc55d93b     2  9d3465eacc        NaN        NaN    2018-03-29   \n",
       "31867  c1b1a4b058     2  65c76167e3        NaN        NaN    2018-03-31   \n",
       "\n",
       "      deactivate_date  \n",
       "0                 NaN  \n",
       "1                 NaN  \n",
       "2                 NaN  \n",
       "3                 NaN  \n",
       "4                 NaN  \n",
       "...               ...  \n",
       "31863             NaN  \n",
       "31864             NaN  \n",
       "31865             NaN  \n",
       "31866             NaN  \n",
       "31867             NaN  \n",
       "\n",
       "[31868 rows x 7 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skus['attribute1'] = skus['attribute1'].replace('-', np.nan)\n",
    "skus['attribute2'] = skus['attribute2'].replace('-', np.nan)\n",
    "skus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9e5e06dca6e1deee",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T10:46:03.321001900Z",
     "start_time": "2024-02-28T10:46:03.263270Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sku_ID 缺失个数： 0 \t占比为： 0.0 %\n",
      "type 缺失个数： 0 \t占比为： 0.0 %\n",
      "brand_ID 缺失个数： 0 \t占比为： 0.0 %\n",
      "attribute1 缺失个数： 15961 \t占比为： 50.08472448851512 %\n",
      "attribute2 缺失个数： 17319 \t占比为： 54.346052466424 %\n",
      "activate_date 缺失个数： 28810 \t占比为： 90.40416718965733 %\n",
      "deactivate_date 缺失个数： 30727 \t占比为： 96.41960587423121 %\n"
     ]
    }
   ],
   "source": [
    "for column in skus.columns:\n",
    "    df = skus[skus[column].isnull()]\n",
    "    print(column, '缺失个数：', len(df), '\\t占比为：', len(df) / len(skus) * 100, '%')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d3b0a33-90de-440e-966d-1b6d8e8eb1af",
   "metadata": {},
   "source": [
    "activate_date、deactivate_date可删除"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8df420af3a067576",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## attribute1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3572be2c5c3c488d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:08:21.349971600Z",
     "start_time": "2024-02-28T11:08:21.322134200Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "attribute1\n",
       "NaN    15961\n",
       "3.0     8351\n",
       "4.0     4252\n",
       "2.0     2491\n",
       "1.0      813\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = skus['attribute1'].value_counts(dropna=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "84ab0d46-575f-4567-bf7b-0fda3983f72d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='attribute1'>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "counts.plot(kind='bar')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "7a97943b-c8ee-48e8-be62-4325c8684f8d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index([nan, '3.0', '4.0', '2.0', '1.0'], dtype='object', name='attribute1')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "9b91a2bce1f6c4e9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:09:39.266223Z",
     "start_time": "2024-02-28T11:09:39.246674500Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "attribute1\n",
       "0.0    15961\n",
       "1.0      813\n",
       "2.0     2491\n",
       "3.0     8351\n",
       "4.0     4252\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts.index = counts.index.fillna(0).astype(float)\n",
    "counts.sort_index(inplace=True)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "351c909049e733bd",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:11:19.240486700Z",
     "start_time": "2024-02-28T11:11:19.224423700Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "attribute1\n",
       "missing    15961\n",
       "1.0          813\n",
       "2.0         2491\n",
       "3.0         8351\n",
       "4.0         4252\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts.index = counts.index.astype(str)\n",
    "counts.index.values[0] = 'missing'\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "840216f1e6136dd8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:11:19.715049900Z",
     "start_time": "2024-02-28T11:11:19.701368600Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "categories = counts.index.values\n",
    "categories = [str(cat) for cat in categories]\n",
    "categories[0] = 'missing'\n",
    "proportions = counts / counts.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "33cf573b8f574b2d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:11:20.198390200Z",
     "start_time": "2024-02-28T11:11:20.128464400Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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n89dXFxUt25dde3aVS+88IJuuukmqwt56aWX1KFDB/Xp06fE+tq1a+vkyZOW5dzcXHl4eFiW/fz8lJqaqvr166tLly7avHmzdu/eXWKUt5inp2eJkFzM3d1d7u7uVtdaGQVFpQP31ay6PjcAAHBtqkjWsCrYXrhwweZirLVgwQKdPHlS/v7+ki4OOy9atEiS1LlzZ0u77du3KygoyLK8a9cutWrVSvv27VPLli118uRJnT59usrrBQAAwJXF6ufY2uK7776zuu3333+v1NRUpaSkKCUlRf3799fkyZN16NAhbdiwQWvXrlVhYaFmzJihnj3//z9/f/HFFxo0aJD8/f114MABZWZmWsIxAAAArh1Wjdh269ZNixcvVt26da3qNDU1VU899ZTWrFmj8+fPW7XP3x/VVatWLQUGBiowMFBvvPGGYmJiVKtWLfn7+1te3HD+/Hn5+fnJ3d1dAwYMULdu3dS0aVO1bNnSqmMCAADAeZgMKybQuri4KCgoSIsWLdItt9xyyXa///67nn/+eX3yyScqKiqSv7+/zpw5Y5dC09PTtWfPHt1+++2XffqBtcxms/z8/JSTk1NtN4+FPL2yWo5TXQ5O73P5RgAAADaqSF6zairC448/rsOHD6tr166Wt3z9VU5Ojp566indeOONmj9/vtzd3RUfH68DBw7YdgZlCA0NVe/eve0WagEAAOBcrAq2M2fO1Oeffy5PT0899thjuvfee3X27FmdO3dOr7/+upo0aaLXXntNhYWFuv/++/Xrr7/qlVdeYa4rAAAAqo3VL2gYNGiQwsPDNWTIEH366adKSUlRXl6eMjMzZRiGBgwYoGnTplXoEV8AAACAvVg1YlusadOm2rx5s0aPHq20tDQdOnRIISEh+vHHH7V06VJCLQAAABymQsFWuviSgzlz5mjevHmqUaOGMjIy9L///a9annULAAAAXIpVUxEaN25c9s5ubvrzzz/16quvav78+apRo0aJ7SaTSb/99lvlqwQAAAAuw6pge/Dgwcu2OX78eKl1JpNzvT4WAAAAVy6rgm16enpV1wEAAABUilXBtlGjRlVdBwAAAFApFbp57PDhw/r8889LvSZ3//79uueee9S8eXPdcsstmjRpknJzc+1aKAAAAFAeq0ZsDcPQhAkT9Oabb6qwsFBZWVmWV5rt2bNHnTt3Vk5OjorfzvvT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ff3113r//ffVvn177dy5U5K0efNmmUwmzZs3T71799bKlc4zrwgAAABXHpuD7dSpU1WvXj1t2LBB+fn52rBhg3x8fDR+/HhJ0smTJyVJderUUdOmTfXbb7/Zp2IAAACgDDYH25SUFA0dOlS33HKLvLy8dMsttyg2NlY//fSTJCk/P1+enp6SJC8vL2VnZ9ulYAAAAKAsNgfbevXqaf/+/SXW7d+/3/KShuzsbNWtW1eSdPbsWXl5eVWiTAAAAKB8Nj/HdsSIEZo4caJ69+6tdu3aafv27VqzZo1iYmKUnZ2tb775Rn/88YfOnTunffv2qWHDhvasGwAAACjB5mD7zDPP6NixY/rggw+0Zs0aubq6asKECVqxYoXq1KkjwzDUpUsXRUdHa+vWrRo1apQdywYAAABKsnkqgpubm959912dOnVKmzZt0uHDhzVlyhR9+eWXGjt2rObPn6+VK1fK3d1dwcHBevbZZ+1ZNwAAAFBCpV+pGxAQoI4dO1qWGzVqpLfeesuynJycXNlDAAAAAJdl84gtAAAAcCWp9IjtsWPH9Ntvv6moqKjE+uzsbC1cuFCJiYmVPQQAAABwWTYH29zcXI0YMULLly8vtx3BFgAAANXB5qkIL730kr788ksNHjxYERERcnFx0XPPPadx48apRo0aCggI0Pz58+1ZKwAAAHBJNo/YLlu2TL169dKiRYu0adMm3XrrrerTp486duyonj17qmfPnvrjjz/sWSsAAABwSTaP2P7+++9q1aqVJKljx47y8vLStm3bJEndu3dXly5d9MEHH9inSgAAAOAybA62devW1aFDhy524uKili1baseOHZbtN998s/bs2VP5CgEAAAAr2Bxsu3btqqVLl2rmzJmSpFtvvVXLly9Xbm6uJGn79u3y8/OzT5UAAADAZdgcbF988UXVrl1b8fHxkqQRI0bo+PHjCg0NVdOmTfXdd9+pZ8+edisUAAAAKI/NwTYkJERbtmzR008/Leni1IO3335bf/75pw4cOKAOHTpo+vTpdisUAAAAKE+l3jzWsGFDTZkyxbL80EMPKTc3V2fOnNGmTZtUv379ShcIAAAAWMPur9Q1mUzy9/e3d7cAAABAuewebCWpqKhIy5cvV0pKSlV0DwAAAJRic7C9//779b///a/Mba6urnr55Zf1z3/+09buAQAAgAqxOdjOmzdP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4YcfvuQ+1+L1J6VcRc6fP6+ePXsqMTFRJ06ckGEYOn/+vCTpxIkTio6O1urVq3XmzBlL+8r47LPPFBQUpO3bt+v333/X3XffXelzQNUxm81lTmXp37+/NmzYoLVr16qwsFAzZsxQz549HVAhKuvs2bPq27evBgwYoIEDByovL095eXkyDIPrfw248cYbNXv2bM2ePVuZmZl65pln1KNHD/n6+nL9rwHff/+9UlNTlZKSopSUFPXv31+TJ0/W5MmTlZ2draKiolL7DB48WJ999pl27typvLw8/ec//3H660+wvYr4+vrqk08+0csvv6wmTZpo+fLlev/99yVJN910k15//XU99NBDatKkifbu3atXX321UseLiYnRhg0b1LlzZ9WpU0d169bVnDlz7HEqqALh4eFauXJlqfWBgYF64403FBMTo+uuu0579+7Vc88954AKUVlJSUlKS0tTQkKCfHx8LF8ZGRlc/2vA9ddfr88//1xvvfWWWrZsqfz8fH300UeS+P//WtCwYUOFhIRYvmrVqqXAwEAFBgYqICBAO3fuLLVPmzZt9Nhjj6l9+/YKCgqSq6truSO8zsBkFE+oBP5mxIgRatSokR555BGZTCZ98sknSkxMdPpHhTir9PR07dmzR7fffjvPM74Gcf2vbVz/a1taWpoOHz6sLl26OP0cW4ItLmn16tV66qmn9Ouvv0qSWrZsqenTp+uOO+5wcGUAAAClEWwBAADgFJhjCwAAAKdAsAUAAIBTINgCAADAKRBsAQAA4BQItgCsNnDgQJlMJn3wwQdlbh89erRMJpNmzJhR6WOZTCZFR0dXup8rUWFhoV566SU1bdpUHh4eqlOnzjX7ApRRo0bJZDLp4MGDZW43mUyKjIys3qLs6NNPPy33/ADYF8EWgNViYmIkXXxRQFmK1xe3Q9mee+45vfDCCwoJCdETTzyhO++8U6mpqY4uC3a2ceNG3X///Y4uA7im8LgvAFY7fPiwGjZsKD8/P50+fVqurq6WbTt37lR4eLhuuOEGZWRkVPpYJpNJXbp00XfffVfpvq40DRs2lJeXl3799VeZTCZJ0oULF+TiUn1jDSEhIZJk1UhidHS0kpOTVRW/Lo4ePaqcnBw1adJE7u7upbabTCZ16tRJmzZtsvuxpYvnHxoaqvvuu0/z5s2zW79LlizRfffdpz/++EPSxRckFH/mAKoOI7YArBYUFKTw8HDl5ORo8+bNJbYVj9b27t3bEaVdVYr/gVAcaiVVa6i9klx//fW66aabygy1V6vExETdddddioqK0uDBgx1dDnBNuTZ/kgKwWfE0gzVr1pRYX7zMNARc6zIzM/Xyyy9r+fLlvL4WqGYEWwAVUtY827Nnz+r777+Xp6dnqVcu5+XlaeLEibrpppvk7e2t4OBgxcbGav/+/TbX8N1338lkMmnixImltk2cOFEmk6nUFIbt27dr0KBBCgwMlKenp1q3bq05c+bYXEOxw4cPKy4uTvXr15eXl5dat26tt99+WxcuXCjRzmQyWb4kKTk5ucS6yky5KCws1Jtvvqnw8HDVqlVL119/vfr06aPt27eXaBcSEmI5XkZGhjIyMkrU8Nc/xUdHR1vWJycnlzqHsj77v97wt2XLFg0dOlRBQUF6++23L1n75W4eK/b111/r5ptvlpeXl2644QY9//zzOnfunNV9hYSElJh+UXweoaGhkqT58+eXOL+y+liyZIluv/121apVSzVr1lS3bt30/fffl2oXHx+vZ555psRUHQDVw83RBQC4unTu3Fn+/v7asmWLsrKyFBAQoPXr1+vPP//UP/7xD9WsWdPS9vz58+rbt6+Sk5MVFRWlvn376vjx41q0aJF+/PFH7dy5U/7+/lVe86pVqzRw4EDVrFlTgwYNkre3t1asWKF//etf+v3338sMadbYt2+foqKidPz4cfXq1UtNmjTRmjVr9Oijjyo5OVmLFi2yTDF49tlnLftNmTJFN9xwg0aMGGFZ16hRI5vPb9SoUVqwYIFuvvlmPfDAAzKbzVq4cKG6dOmiX375xRLoHnnkEWVlZUmSZs2aJUkaO3aspZ82bdpY/nvEiBG67bbbJEkff/yxDh06VOIcoqKiLlnPvHnz9K9//Ut+fn5q2rSp6tWrZ/O5SdKBAwfUt29f3XrrrYqLi9PatWv18ssvKyUlRV9++WWJKR3W8Pf3t5xLTk6OZs2apfDwcPXr169Em7964YUX9NJLL6lZs2aKi4tTXl6ePv/8c3Xr1k2rVq1S9+7dLW0JtIADGQBQQbGxsYYkY/HixYZhGMa4ceMMScabb75Zot2aNWsMSUafPn1KrJ81a5YhyUhMTLzkMSQZXbp0KXPbunXrDEnGiy++WGrbiy++aEgy1q1bZxiGYfzxxx9G3bp1jcDAQOPQoUOWdjk5OUZwcLDh6elpnD592oqzLq1Tp06GJOPDDz+0rMvPzze6detmSDLee++9Cp9bRe3bt8+QZLRp08YoLCy0rF+xYoUhyZgyZUqZ+zVq1Mho1KiRVcfo0qWLYc2vC0lGUFCQ4eXlZbz55ptGQUHBZfe57777DElGenr6JfuUZDz66KOWdXl5eUZERIQhyVi6dKlVfV3qfNPT0w1Jxn333XfJGn/66SdDkhEVFVXinH7++WdDktG+fXubzw+AfTFiC6DCYmJitHDhQq1Zs0ZDhgy55PzaHj16lLqTfv/+/frpp58kSb/99luV15qUlKSTJ0+qbdu2pZ6/6+/vr8zMTG3YsKHEaJ01UlNTtXnzZrVv377EI51q1KhhmRbw4Ycf6sEHH7TLeVxKs2bNSn3Gv//+u2X6QHV8xn91+PBhPf/883rsscfs1qenp6cmTZpkWa5Zs6bGjRune+65R8uXL9edd95pt2OVJTExUZIUEBCgyZMnl9jm6+urbdu2yWw2y9fXt0rrAHB5BFsAFdarVy+ZTCYlJSXp8OHD2rVrl5o2bapmzZqVanvs2DHNnj1bycnJSklJ0ZkzZyx/ni8qKrJ7bX/vc9++fZKklJQUpaSklLnP4cOHK3yctLQ0SVK7du1KbWvZsqU8PT0tbapaTk6OEhIS9O233+rnn3/W8ePHq/QzLk+9evX0zDPP2LXPRo0alZoa0KJFC0kXH6NljaKiIpunCBR/Dy1btkzLli0rs82RI0cItsAVgGALoMLq1aun9u3ba8uWLfrPf/4jqeynIWzdulXdunVTYWGh+vfvr6efflqtW7fWhQsX1KdPnyqp7e83/RSPZr755pt2HUUsVtH5nfaWkZGhyMhInTx5UjExMXrkkUfUqlUrhYSEqG3bttVeT/PmzeXl5WXXPssKpMXr/j5aXZZz587p6NGjatiwoU3HLz5GSkpKiXnIAK48BFsANomJidGWLVssr88tK9g+//zzys3Ntdw8VmzlypWVOnZxmDx//nyJ9YWFhfrhhx9KrAsLC5OkMkdPt2/frg0bNigyMlLt27evUA3FI4ZljQLv3r1bBQUFFe7TFtOnT9exY8c0f/58jRw50rJ+165d5e7n4uJS6skN5bV1pPT0dOXl5ZV4dNaePXskScHBwZZ1l/q+SE5OvuTItTXnFhYWptWrVystLa1UsF2xYoUOHjyowYMH6/rrr7fuhABUGR73BcAmfw2y3t7elsc8/dWRI0ckSTfccINlXXp6up588slKHbv4Lvu/v4b2jTfeKDVi26NHD9WtW1effvppifZFRUUaO3asHnnkEZ0+fbrCNbRq1UqdOnXSTz/9pPnz51vW//nnn3riiSckSf/85z8r3G9FlfUZnzx5Ug888EC5+4WEhOjEiROWN2NJF99+VtYIaPFTFQ4cOFBi/d8DZFX5888/9fLLL5dYnjlzpiSVGPkv6/uioKBATz311CX7btCggTw8PMo9t+HDh0uSXn31VWVnZ1vWHz16VCNGjND//d//qUaNGjacGQB7Y8QWgE06dOigunXr6uTJk+rWrZs8PT1LtenVq5d++eUX9erVS3369FFGRoZWrlxpCQF/DQkVERYWptatW2v58uWaMWOGoqOjtWzZMr311lvq3r271q5da2nr7e2t//73vxo8eLDat2+vO++8Uw0aNNC3336rHTt2aMiQIerZs6dNdcyfP19dunTRqFGjtHDhQsvjvn799VcNHjxYY8aMsanfiujVq5e+/PJL3Xvvvbrrrrt08uRJLV++3PKn+kt9xqNGjdK6desUHR2trl27ymw2a/Xq1UpJSSk1n7X4dbN9+vRR37599eeff+rbb79VYmJitUx3CAgI0GuvvaZt27bppptu0jfffKPdu3erW7duGjJkiKXdoEGD9Oqrr2r8+PHy8PCQp6enJk+eLDc3N1133XVl9u3m5qZ77rlHc+fO1cCBAxUWFqbDhw/r0KFDlhvwOnbsqGeeeUZTp07VTTfdpH79+snT01NLlixRdna2/vOf/1TLY+sAWMGRj2QAcHUbOXKkIcl49913y9x+7tw547nnnjNCQkIMDw8PIzQ01IiPjzd++eUXw8XFxQgNDTXOnj1b5r66zCOx9u/fb/Tq1cvw8/Mz/Pz8jN69exvbt28v9bivYlu3bjUGDBhgBAQEGN7e3ka7du2MDz74wDh//rytp28YhmH8/vvvxj//+U/juuuuMzw8PIxWrVoZb731llFUVHTJfS53bhX1xhtvGGFhYYanp6fRoEED44EHHjAOHDhg1KxZ0/Dz8zOOHz9e5n6zZ882WrZsaXh6eho+Pj5GdHS0kZ+fX2bbpUuXGhEREUaNGjUMb29vo1OnTiUen2breVnzuK9OnToZX3zxhdGyZUvDw8PDCAoKMv7v//6vzO+dBQsWGM2bNze8vLyM4OBgY/z48UZeXl65jzfLy8sznnzySaNRo0aGq6urERgYWOLxYsUWLVpkdO7c2fD29jYCAgKMbt26GWvXrq3U+QGwL5NhWDHzHgAAALjCMccWAAAAToFgCwAAAKdAsAUAAIBTINgCAADAKRBsAQAA4BQItgAAAHAKBFsAAAA4BYItAAAAnALBFgAAAE6BYAsAAACnQLAFAACAUyDYAgAAwCn8f9M592n8ZhQLAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 4))\n",
    "plt.bar(categories, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of SKUs', fontdict={'size': 16})\n",
    "plt.xlabel('Value of attribute1', fontdict={'size': 16})\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7c255fda73cce2a",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## attribute2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7773f5fdfae14091",
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts = skus['attribute2'].value_counts(dropna=False)\n",
    "counts.index = counts.index.fillna(0).astype(str)\n",
    "counts.sort_index(inplace=True)\n",
    "counts.index.values[0] = 'missing'\n",
    "categories = counts.index.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "682f5dc2be4124be",
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "45692de1a4714a3c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:16:17.464000800Z",
     "start_time": "2024-02-28T11:16:17.395140500Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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AAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIItgAAALAEgi0AAAAsgWALAAAASyDYAgAAwBIsFWyNMfr5558ruwwAAABUgiobbHv37q3o6GhJ0saNG9WqVSsFBgZqxowZ9m0WLFggf39/LViwQJK0fv16HT58uBKqBQAAQGWrksF24cKFWrdunSTp5MmTuvPOOzV06FBt2bJFCxcu1IYNGyRJb775phYvXqw333xTkrR582bdcsstlVY3AAAAKk+VC7anT5/WuHHjFBoaKum3kNugQQM9//zzatGihf75z39q3rx59m0jIyN1+vRppaSkqFGjRpVZOgAAACqRa2UX8Efjxo3TgAED9Ouvv0qS4uLi1L17d9lsNknSjTfeqGeeeUaS5O3trZ9++kk+Pj766KOP9NBDDxW775ycHOXk5NiXMzMzJUm5ubnKzc0tj+EU4uFiKqQfSRU2JgAAgPJSmjxTpYLthg0b9OWXX2r37t165JFHJP0WPlu3bm3fxsfHR0ePHpUkDR06VGFhYZo4caJycnJUu3btYvc/depUTZo0qVB7TEyMvLy8nDiSy5t+Y4V0I0n67LPPKq4zAACAcpCdnV3ibatMsD137pweeOABzZo1S97e3vZ2V1dXeXh42Jc9PT3tA3z66af197//XZ9//rnq1KmjG264Qc2bN9dHH31kP8P7exMmTNCTTz5pX87MzFRQUJBuv/12+fj4lOPoLmk7cV2F9CNJ8RN7VVhfAAAA5SH/L+wlUWWC7UsvvaROnTqpT58+BdoDAgJ08uRJ+3JWVpbc3d3ty76+voqPj1f9+vXVrVs3fffdd9qzZ0+Bs7z5PDw8CoTkfG5ubnJzc3PiaC4v52LhwF1eKmpMAAAA5aU0eabKBNtFixbp5MmT8vPzk/TbaefFixdLkm666Sb7djt27FDDhg3ty7t371bbtm21f/9+tWnTRidPnlRqamqF1g4AAIDKV2WeivDNN98oPj5esbGxio2N1Z133qkXX3xRycnJ2rx5s7744gvl5uZq+vTp6tXr0p/Yly1bprvvvlt+fn46dOiQUlJS7OEYAAAA1UeVOWP7x0d11a5dW4GBgQoMDNTMmTMVFRWl2rVry8/Pz/7ihgsXLsjX11dubm7q37+/evTooebNm6tNmzaVMAIAAABUJpsxpuKeP1UGiYmJ2rt3r2699dYrPv2gpDIzM+Xr66uMjIwKu3ks+Jk1FdKPJB2e1ufKGwEAAFRhpclrVeaM7ZWEhIQoJCSksssAAABAFVVlrrEFAAAAyoJgCwAAAEsg2AIAAMASCLYAAACwBIItAAAALIFgCwAAAEsg2AIAAMASCLYAAACwBIItAAAALIFgCwAAAEsg2AIAAMASCLYAAACwBIItAAAALIFgCwAAAEsoUbD98MMPNWHChPKuBQAAAHBYiYLtpEmTtHv37gJtTZs21cyZM8ulKAAAAKC0ShRsk5KS1Lp16wJthw8fVlpaWrkUBQAAAJRWiYKtv7+/MjIyyrsWAAAAwGGuJdnolltu0QcffKBGjRopKCjI3r5z5069//77xX53xIgRZasQAAAAKAGbMcZcaaNDhw7pT3/6kxITE2Wz2SRJxhj7fxclf/3FixedV62TZWZmytfXVxkZGfLx8amQPoOfWVMh/UjS4Wl9KqwvAACA8lCavFaiM7ZNmzbVrl27tGXLFh05ckR5eXm677771K9fPw0YMMApRQMAAABlUaJgK0leXl667bbb7Mv33XefwsLCNHLkyHIpDAAAACgNXtAAAAAASyjxGds/mj9/vtq3b+/MWgAAAACHORxsuQQBAAAAVYnDwTZfamqqFi9erISEBElS69at9Ze//EV16tQpc3EAAABASZUp2C5fvlyjRo3SmTNnlP/UMJvNpgkTJig6Olp33XWXM2oEAAAArsjhYPvDDz9oyJAhcnV11RNPPKHw8HBJ0o8//qhZs2ZpyJAh+vbbb3XDDTc4rVgAAADgchwOtpMmTZKrq6u2bNmisLAwe/vQoUM1YsQIRUREaNKkSVq1apVTCgUAAACK4/Djvr799lsNHDiwQKjN165dOw0aNEjffPNNmYoDAAAASsrhYHvhwgV5enpedr27u3uVfp0uAAAArMXhYBseHq5ly5bpl19+KbTu6NGjWr58OdfXAgAAoMI4HGwnTJig06dP68Ybb9Ts2bO1detWfffdd5o9e7YiIiKUlpamCRMmOLNWAAAA4LIcvnmsd+/emjFjhp566ik9/PDDBdbZbDbNmDFDt99+e5kLBAAAAEqiTM+xffzxx3X77bfrvffe0549eyT99oKGUaNGqU2bNk4pEAAAACiJMr95rHXr1nr11VedUQsAAADgMIevsQUAAACqEoItAAAALIFgCwAAAEsg2AIAAMASCLYAAACwBIItAAAALIFgCwAAAEsg2AIAAMASCLYAAACwBIItAAAALIFgCwAAAEtwWrA9f/68JOnXX3911i4BAACAEitTsN2zZ48GDx6sunXrysvLS5L03nvvKSgoSKtWrXJKgQAAAEBJuDr6xfj4eN100006c+aMbDabvd3f31+//PKLBg4cqO+//14dOnRwRp0AAABAsRw+Y/vcc8/p4sWLWr58uZ5++ml7+7BhwxQbG6tatWpp0qRJTikSAAAAuBKHg+3GjRs1cOBA9e/fXy4uLgXWtW3bVn/+85+1devWMhcIAAAAlITDwTY3N1f16tW77Ho3NzdlZmY6unsAAACgVBwOtq1atdKmTZuKXJeTk6PPP/9crVq1crgwAAAAoDQcDrb333+/tm3bpuHDhyslJUWSdObMGX333XcaOHCgDh8+rPvvv99phQIAAADFcfipCPfff782b96sDz74wP5UBF9fX0mSMUbDhg0j2AIAAKDCOBxsJWnBggXq16+fFi5cqP3798sYo9DQUN1zzz0aNGiQs2oEAAAArqhMwVaSBg0aRIgFAABApXP4GtsXX3xRy5Ytu+J2mZmZMsY42g0AAABQIg4H23//+9/atm1bsduMHTtWAQEBCgsLU1pamqNdAQAAAFfkcLC9++67deDAAf3tb39Tr1699NBDD2nv3r329bGxsXr77bd1xx13aP/+/XrzzTedUjAAAABQFIeD7ZAhQ/TJJ59o3rx5Wr9+vWbPnq0bbrhBu3btkiR99913stlsio6O1h133KE1a9Y4rWgAAADgjxwOtlOmTFG9evW0efNmZWdna/PmzfL29ta4ceMkSSdPnpQk1alTR82bN9fBgwedUzEAAABQBIeDbWxsrIYMGaIuXbrI09NTXbp00eDBg/X9999LkrKzs+Xh4SFJ8vT0VHp6ulMKBgAAAIricLCtV6+eDhw4UKDtwIED9pc0pKenq27dupKkX3/9VZ6enmUoEwAAACiew8+xHT58uCZOnKg77rhDHTt21I4dO7Ru3TpFRUUpPT1dX375pc6ePavz589r//79atSokTPrBgAAAApwONg+++yzOnbsmN555x2tW7dOLi4umjBhglavXq06derIGKNu3bopMjJS27Zt06hRo5xYNgAAAFCQw5ciuLq66u2339apU6e0detWHTlyRJMnT9bKlSs1duxYLViwQGvWrJGbm5uCgoL03HPPObNuAAAAoACbqWKvBUtPT9e+fft03XXXyd/fv9TfT0lJUVBQUIm2zczMlK+vrzIyMuTj41PqvhwR/EzFPfbs8LQ+FdYXAABAeShNXnP4jG15WLJkiYKDgzVmzBg1atRIS5YskSTFx8erU6dO8vf31/jx4+2v6I2JiVFgYKAmT54sSdq3b582bdpUafUDAACg8pQ52B47dkybN2/Wpk2bCnxWrlype+65p8T7ycjI0EMPPaRNmzZp165deuuttzR+/Hjl5OSoX79+Cg8P17Zt25SQkKDo6GhJ0pw5czRnzhzNnTtXkrR06VINGjSorEMCAADAVcjhm8eysrI0fPhwrVq1qtjtFi5cWKL9ZWZm6rXXXlNYWJgk6frrr1dqaqrWrl2rjIwMzZgxQ15eXpoyZYoefvhhjR49WqdPn1b79u1ljFF2drZq1Khhf3YuAAAAqheHg+1LL72klStXatCgQTp8+LB27NihZ599VtnZ2Zo1a5Y8PT312muvlXh/QUFB9jO8ubm5mjlzpgYMGKC4uDhFRETIy8tLkhQWFqaEhARJkre3t06cOCFJ+vjjjzV48OBi+8jJyVFOTo59OTMz095fbm5uiWstCw+XirukuaLGBAAAUF5Kk2ccDrYrVqxQ7969tXjxYm3dulU333yz+vTpoxtvvFG9evVSr169dPbs2VLvNy4uTj169JC7u7v27Nmjl156SSEhIfb1NptNLi4uSktL0+DBg9W1a1eNGTNGiYmJGj16dLH7njp1qiZNmlSoPSYmxh6cy9v0GyukG0nSZ599VnGdAQAAlIPs7OwSb+vwUxFq1aqlhx9+WNOnT1deXp68vb316quv6sEHH5Qk9ejRQ+np6frxxx9LtV9jjH788Uc98cQTqlevnpo1a6bc3FzNmDHDvk1QUJC2bt2qhg0bKiMjQ3v37lVycrJmz54tSVq9erVq1qxZaN9FnbENCgrSqVOnKuypCG0nrquQfiQpfmKvCusLAACgPGRmZiowMLBET0Vw+Ixt3bp1lZycLEmqUaOG2rRpo7i4OPv666+/Xm+//Xap92uz2RQeHq4FCxaoWbNmmjp1quLj4wtsk5WVJXd3d0mSr6+v1q5dq/DwcAUGBkqSNmzYoKioqEL79vDwKPIaXDc3N7m5uZW6VkfkXLRVSD+SKmxMAAAA5aU0ecbhpyJ0795dy5cvt59Jvfnmm7Vq1SplZWVJknbs2CFfX98S72/jxo0aP368fdnd3V02m02tWrXSli1b7O2JiYnKyclRQECAJCk1NVX+/v5KT09XaGioQkNDlZqa6uiwAAAAcJVyONi+8MILCggIsIfR4cOH6/jx4woJCVHz5s319ddfq1evkv8p/LrrrtO7776rd999VykpKXr22Wd1++23KyoqSpmZmZo/f74kacqUKerZs6dcXFwk/fbUhWHDhsnPz09JSUlKSkqSn5+fo8MCAADAVcrhYBscHKwffvhBzzzzjKTfLj144403dO7cOR06dEidOnXStGnTSry/a6+9Vp988olef/11tWnTRtnZ2Xr//ffl6uqquXPnauzYsQoMDNSKFSv0yiuv2L+Xm5urunXrKjIyUvHx8YqPj1f37t0dHRYAAACuUk5/pa4xRhkZGU4/a3rs2DFt375dERERqlOnjlP2ySt1AQAAqrbS5DWHbx67HJvNVi6XAtSvX199+hDUAAAAULQyv1K3KBcvXtSqVasUGxtbHrsHAAAACnE42N5333369NNPi1zn4uKil19+WX/9618d3T0AAABQKg4H2+jo6GJfvtClSxft2bPH0d0DAAAApVIulyJIv5215QUBAAAAqCilunks/01j+TIyMgq1SdKhQ4e0ePFidejQoUzFAQAAACVVqmAbHBwsm+3SK2HffPNNvfnmm0Vu6+Hhof/+979lqw4AAAAooVIF2xEjRshms8kYo/fff1/t2rVTx44dC2xTo0YNBQcHa/DgwbruuuucWiwAAABwOaUKttHR0fb/fv/993XnnXfqxRdfdHZNAAAAQKmV281jAAAAQEVyONiOHDlS119/vTNrAQAAABzm8Ct158+f78w6AAAAgDJxONhKUnZ2tjZv3qxjx47JGFPkNiNGjChLFwAAAECJOBxs4+Li1KdPH/3yyy9FrjfGyGazEWwBAABQIRwOto8++qiOHj2qfv36qXfv3vLy8nJmXQAAAECpOBxsd+zYoZ49e2rFihXOrAcAAABwiMNPRahdu7batm3rzFoAAAAAhzkcbPv376/ly5crOzvbmfUAAAAADnE42L7yyivy8/NTr169tG/fPmfWBAAAAJSaw9fYPv7442rRooWWLl2qdu3aqWPHjmrRooXc3d3t29hsNs2bN88phQIAAADFsZnLPYD2CmrUuPLJXpvNposXLzqy+wqRmZkpX19fZWRkyMfHp0L6DH5mTYX0I0mHp/WpsL4AAADKQ2nymsNnbBMTEx39KgAAAOB0DgfbJk2aOLMOAAAAoEwcvnksnzFGu3fvVkxMjCTpwIED2r9/f5kLAwAAAEqjTMH2/fffV6NGjRQWFqaoqChJ0rp169SqVSs9/fTTTikQAAAAKAmHg+3KlSs1atQoZWZmqlGjRsq/B61du3YKCQnRq6++qmXLljmtUAAAAKA4DgfbKVOmqH79+tq7d6+GDx9ub+/atatiY2PVtGlTzZgxwylFAgAAAFficLDduXOn7r77bjVs2FA2m63Autq1a6tv377avXt3mQsEAAAASsLhYOvh4VHss2zT09Md3TUAAABQag4/7uvGG2/Up59+qpdffrnQuiNHjmj58uWKiIgoU3GwNl5WAQAAnMnhYPvMM8+oZ8+eioiIUP369SVJq1ev1u7duzVr1iydOXOGJyMAAACgwjgcbLt376533nlHjzzyiPbu3StJ6t+/v4wxcnd319tvv63u3bs7rVAAAACgOA4HW0kaM2aMoqKitGTJEu3fv1/GGIWGhmrQoEFq2LChs2oEAAAArqhMwVaSGjRooMcee8wZtQAAAAAOK/MrdX/PGKO4uDhdvHjRmbsFAAAArqhMwXblypVq27at/Q1j2dnZ6tixoxo2bMhbxwAAAFChHA6233//ve6++24lJCTYX6fr5uamyMhIZWVlafDgwfrf//7ntEIBAACA4jgc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k5OTo4CAAEm/3djm7++v9PR0hYaG2tsAAABQvZT4zWPl7ddff1Xfvn3Vv39/DRgwQGfOnNGZM2d06623KjMzU/Pnz5ckTZkyRT179pSLi4skaeHChRo2bJj8/PyUlJSkpKQk+fn5VeJIAAAAUBmqTLCNiYlRQkKC5syZI29vb/vnyJEjmjt3rsaOHavAwECtWLFCr7zyiv17ubm5qlu3riIjIxUfH6/4+Hh17969EkcCAACAylDipyKUt/79++ty97EFBwfr4MGD2r59uyIiIlSnTh37unHjxkn67dFf27dvr5BaAQAAUPVUmWB7JfXr11efPn0quwwAAABUUVXmUgQAAACgLAi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAEgi2AAAAsASCLQAAACyBYAsAAABLINgCAADAElwruwAAAEoi+Jk1FdbX4Wl9KqwvAM7DGVsAAABYAsEWAAAAlkCwBQAAgCUQbAEAAGAJBFsAAABYAsEWAAAAlkCwBQAAgCUQbAEAAGAJBFsAAABYAsEWAAAAlkCwBQAAgCUQbAEAAGAJBFsAAABYAsEWAAAAlkCwBQAAgCUQbAEAAGAJBFsAAABYAsEWAAAAlmC5YJuSklLZJQAAAKASVLlge+rUKYWEhOjw4cP2tvj4eHXq1En+/v4aP368jDGSpJiYGAUGBmry5MmSpH379mnTpk2VUTYAAAAqWZUKtqdOnVLfvn0LhNqcnBz169dP4eHh2rZtmxISEhQdHS1JmjNnjubMmaO5c+dKkpYuXapBgwZVQuUAAACobFUq2A4ZMkTDhg0r0LZ27VplZGRoxowZatasmaZMmaJ5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Xrae6Oho/e1vf5Ovr6+aN29e6OxlaR06dEh9+/bVzTffrDFjxuiLL77Qyy+/rNjYWK1cubLUZ0D9/PzsY8nIyNCbb76psLAw9evXr8A2v/fPf/5TL730klq0aKExY8bozJkz+uSTT9SjRw+tXbtWPXv2LLbPF198UZL02GOPlapWAKVkAKCUBg8ebCSZJUuWGGOMefLJJ40k89prrxXYbt26dUaS6dOnT4H2N99800gyCxcuvGwfkky3bt2KXLdhwwYjybzwwguF1r3wwgtGktmwYYMxxpizZ8+aunXrmsDAQJOcnGzfLiMjwwQFBRkPDw+TmppaglEX1rlzZyPJzJs3z96WnZ1tevToYSSZWbNmlXpspbV//34jybRv397k5uba21evXm0kmcmTJxf5vSZNmpgmTZqUqI9u3bqZkvxzIck0bNjQeHp6mtdee83k5ORc8TsjR440kkxiYuJl9ynJPProo/a2M2fOmPDwcCPJLF++vET7utx4ExMTjSQzcuTIy9b4/fffG0mma9euBcb0448/GknmhhtuKHaM77//vpFkbrnlFpOXl1fstgDKhjO2AEotKipKH3/8sdatW6dBgwZd9vra22+/vdCd9AcOHND3338vSTp48GC51xoTE6OTJ0+qQ4cOhZ6/6+fnp5SUFG3evLnA2bqSiI+P13fffacbbrhB9913n729Zs2a9ssC5s2bp7///e9OGcfltGjRotAc//zzz/bLBypijn/vyJEjev755516ZtLDw0OTJk2yL9eqVUtPPvmk7rnnHq1atUp33XWX0/oqysKFCyVJ/v7+9jOv+Xx8fLR9+3ZlZmbKx8en0HcPHDigsWPHytvbW9HR0VxfC5Qzgi2AUuvdu7dsNptiYmJ05MgR7d69W82bN1eLFi0KbXvs2DG9++672rhxo2JjY3X69Gn7n+cvXrzo9Nr+uM/9+/dLkmJjYy/7mKUjR46Uup+EhARJUseOHQuta9OmjTw8POzblLeMjAzNmTNHX331lX788UcdP368XOe4OPXq1dOzzz7r1H02adKk0KUBrVu3liQlJiaWaB8XL14s8Hi60sg/hlasWKEVK1YUuc3Ro0cLBduzZ89q4MCByszM1CeffKJmzZo51D+AkiPYAii1evXq6YYbbtAPP/yg//znP5KKfhrCtm3b1KNHD+Xm5urOO+/UM888o3bt2ikvL099+vQpl9r+eNNP/tnM1157rVyub6zsM3BJSUmKiIjQyZMnFRUVpUceeURt27ZVcHCwOnToUOH1tGrVSp6enk7dZ1GBNL/tj2eri3L+/Hn98ssvatSokUP95/cRGxtb4DrkK31nxIgR2rlzp5555hkNHDjQob4BlA7BFoBDoqKi9MMPP9hfn1tUsH3++eeVlZVlv3ksX1lfLZofJi9cuFCgPTc3V99++22BttDQUEkq8uzpjh07tHnzZkVEROiGG24oVQ35ZwyLOgu8Z88e5eTklHqfjpg2bZqOHTumBQsWaMSIEfb23bt3F/u9GjVqFHpyQ3HbVqbExESdOXOmwNMG9u7dK0kKCgqyt13uuNi4ceNlz1yXZGyhoaH6/PPPlZCQUCjYrl69WocPH9bAgQN17bXX2tsfe+wxLVu2TP369dPkyZOv2AcA5+BxXwAc8vsg6+XlZX/M0+8dPXpUktS4cWN7W2Jiop566qky9Z1/l/0fX0M7c+bMQmdsb7/9dtWtW1cfffRRge0vXryosWPH6pFHHlFqamqpa2jbtq06d+6s77//XgsWLLC3nzt3Tk888YSk3x7KX96KmuOTJ0/qgQceKPZ7wcHBOnHihM6ePWtvy8vLK/IMaP5TFQ4dOlSg/Y8BsrycO3dOL7/8coHlGTNmSFKBM/9FHRc5OTl6+umnL7vvBg0ayN3dvdixDRs2TJL0r3/9S+np6fb2X375RcOHD9f//d//qWbNmvb2//u//9Mbb7yhDh06aNGiRZX+PwZAdcIZWwAO6dSpk+rWrauTJ0+qR48e8vDwKLRN7969tXPnTvXu3Vt9+vRRUlKS1qxZYw8Bvw8JpREaGqp27dpp1apVmj59uiIjI7VixQq9/vrr6tmzp7744gv7tl5eXnrvvfc0cOBA3XDDDbrrrrvUoEEDffXVV4qLi9OgQYPUq1cvh+pYsGCBunXrplGjRunjjz+2P+7rp59+0sCBA3X//fc7tN/S6N27t1auXKl7771Xf/7zn3Xy5EmtWrXK/qf6y83xqFGjtGHDBkVGRqp79+7KzMzU559/rtjY2ELXs+a/brZPnz7q27evzp07p6+++koLFy6skMsd/P399eqrr2r79u1q2bKlvvzyS+3Zs0c9evTQoEGD7Nvdfffd+te//qVx48bJ3d1dHh4eevHFF+Xq6qprrrmmyH27urrqnnvu0fz58zVgwACFhobqyJEjSk5Ott+Ad+ONN+rZZ5/VlClT1LJlS/Xr108eHh5aunSp0tPT9Z///Mc+Z//73//0r3/9S5LUoUMHTZs2rVCff/3rX+3PzwXgZJX4RAYAV7kRI0YYSebtt98ucv358+fNP/7xDxMcHGzc3d1NSEiIGT9+vNm5c6epUaOGCQkJMb/++muR39UVHol14MAB07t3b+Pr62t8fX3NHXfcYXbs2FHocV/5tm3bZvr372/8/f2Nl5eX6dixo3nnnXfMhQsXHB2+McaYn3/+2fz1r38111xzjXF3dzdt27Y1r7/+url48eJlv3OlsZXWzJkzTWhoqPHw8DANGjQwDzzwgDl06JCpVauW8fX1NcePHy/ye++++65p06aN8fDwMN7e3iYyMtJkZ2cXue3y5ctNeHi4qVmzpvHy8jKdO3cu8Pg0R8dVksd9de7c2Sxbtsy0adPGuLu7m4YNG5r/+7//K/LYWbRokWnVqpXx9PQ0QUFBZty4cebMmTPFPt7szJkz5qmnnjJNmjQxLi4uJjAwsMDjxfItXrzY3HTTTcbLy8v4+/ubHj16mC+++KLANpMnT7Y/ouxynz8emwCcx2ZMCa68BwAAAKo4LvwBAACAJRBsAQAAYAkEWwAAAFgCwRYAAACWQLAFAACAJRBsAQAAYAkEWwAAAFgCwRYAAACWQLAFAACAJRBsAQAAYAkEWwAAAFgCwRYAAACW8P8AcdjF4bgPmYQAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of', fontdict={'size': 16})\n",
    "plt.xlabel('Value of attribute2', fontdict={'size': 16})\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3001b6b1141d4d7",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Table 2 Users--用户"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "5f7e11381edc3389",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:16:50.427514600Z",
     "start_time": "2024-02-28T11:16:50.185637900Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 'users' table 用户信息\n",
    "users = pd.read_csv('./JD_data/JD_user_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e086953d1bf7ade8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:16:50.696872600Z",
     "start_time": "2024-02-28T11:16:50.677912400Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_ID</th>\n",
       "      <th>user_level</th>\n",
       "      <th>first_order_month</th>\n",
       "      <th>plus</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>marital_status</th>\n",
       "      <th>education</th>\n",
       "      <th>city_level</th>\n",
       "      <th>purchase_power</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>000089d6a6</td>\n",
       "      <td>1</td>\n",
       "      <td>2017-08</td>\n",
       "      <td>0</td>\n",
       "      <td>F</td>\n",
       "      <td>26-35</td>\n",
       "      <td>S</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0000babd1f</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03</td>\n",
       "      <td>0</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0000bc018b</td>\n",
       "      <td>3</td>\n",
       "      <td>2016-06</td>\n",
       "      <td>0</td>\n",
       "      <td>F</td>\n",
       "      <td>&gt;=56</td>\n",
       "      <td>M</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0000d0e5ab</td>\n",
       "      <td>3</td>\n",
       "      <td>2014-06</td>\n",
       "      <td>0</td>\n",
       "      <td>M</td>\n",
       "      <td>26-35</td>\n",
       "      <td>M</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0000dce472</td>\n",
       "      <td>3</td>\n",
       "      <td>2012-08</td>\n",
       "      <td>1</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>457293</th>\n",
       "      <td>ffff38690b</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03</td>\n",
       "      <td>0</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>U</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>457294</th>\n",
       "      <td>ffffa1a495</td>\n",
       "      <td>4</td>\n",
       "      <td>2011-09</td>\n",
       "      <td>1</td>\n",
       "      <td>M</td>\n",
       "      <td>26-35</td>\n",
       "      <td>S</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>457295</th>\n",
       "      <td>ffffb20ef7</td>\n",
       "      <td>3</td>\n",
       "      <td>2017-11</td>\n",
       "      <td>0</td>\n",
       "      <td>M</td>\n",
       "      <td>36-45</td>\n",
       "      <td>M</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>457296</th>\n",
       "      <td>ffffc45330</td>\n",
       "      <td>1</td>\n",
       "      <td>2016-04</td>\n",
       "      <td>0</td>\n",
       "      <td>F</td>\n",
       "      <td>26-35</td>\n",
       "      <td>M</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>457297</th>\n",
       "      <td>ffffe74cfb</td>\n",
       "      <td>1</td>\n",
       "      <td>2017-10</td>\n",
       "      <td>0</td>\n",
       "      <td>M</td>\n",
       "      <td>26-35</td>\n",
       "      <td>M</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>457298 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           user_ID  user_level first_order_month  plus gender    age  \\\n",
       "0       000089d6a6           1           2017-08     0      F  26-35   \n",
       "1       0000babd1f           1           2018-03     0      U      U   \n",
       "2       0000bc018b           3           2016-06     0      F   >=56   \n",
       "3       0000d0e5ab           3           2014-06     0      M  26-35   \n",
       "4       0000dce472           3           2012-08     1      U      U   \n",
       "...            ...         ...               ...   ...    ...    ...   \n",
       "457293  ffff38690b           1           2018-03     0      U      U   \n",
       "457294  ffffa1a495           4           2011-09     1      M  26-35   \n",
       "457295  ffffb20ef7           3           2017-11     0      M  36-45   \n",
       "457296  ffffc45330           1           2016-04     0      F  26-35   \n",
       "457297  ffffe74cfb           1           2017-10     0      M  26-35   \n",
       "\n",
       "       marital_status  education  city_level  purchase_power  \n",
       "0                   S          3           4               3  \n",
       "1                   U         -1          -1              -1  \n",
       "2                   M          3           2               3  \n",
       "3                   M          3           2               2  \n",
       "4                   U         -1          -1              -1  \n",
       "...               ...        ...         ...             ...  \n",
       "457293              U         -1          -1              -1  \n",
       "457294              S          3           1               2  \n",
       "457295              M          2           4               2  \n",
       "457296              M         -1          -1              -1  \n",
       "457297              M         -1           3               3  \n",
       "\n",
       "[457298 rows x 10 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "users"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "74ce1baa-4f08-4859-96c0-4cbd6ab44b44",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_ID              0\n",
       "user_level           0\n",
       "first_order_month    0\n",
       "plus                 0\n",
       "gender               0\n",
       "age                  0\n",
       "marital_status       0\n",
       "education            0\n",
       "city_level           0\n",
       "purchase_power       0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "users.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "962db07d-0dc7-4e8d-b27c-a84ffcf936c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "user_ID\n",
      "000089d6a6    1\n",
      "aa4c44559c    1\n",
      "aa4dd56955    1\n",
      "aa4d8654ab    1\n",
      "aa4d64ecb0    1\n",
      "             ..\n",
      "54d3e833a4    1\n",
      "54d3e15aab    1\n",
      "54d3d039e8    1\n",
      "54d3add116    1\n",
      "ffffe74cfb    1\n",
      "Name: count, Length: 457298, dtype: int64\n",
      "user_level\n",
      " 2     141859\n",
      " 1     129429\n",
      " 3      96802\n",
      " 4      85728\n",
      "-1       2303\n",
      " 10      1016\n",
      " 0        161\n",
      "Name: count, dtype: int64\n",
      "first_order_month\n",
      "2018-03    37761\n",
      "2017-11    12315\n",
      "2017-10    11045\n",
      "2018-01    10003\n",
      "2018-02     9762\n",
      "           ...  \n",
      "2004-10        1\n",
      "2003-12        1\n",
      "2004-08        1\n",
      "2004-12        1\n",
      "2004-02        1\n",
      "Name: count, Length: 169, dtype: int64\n",
      "plus\n",
      "0    376342\n",
      "1     80956\n",
      "Name: count, dtype: int64\n",
      "gender\n",
      "F    292897\n",
      "M    107084\n",
      "U     57317\n",
      "Name: count, dtype: int64\n",
      "age\n",
      "26-35    183239\n",
      "16-25    103306\n",
      "36-45     81076\n",
      "U         56457\n",
      "46-55     18679\n",
      ">=56      14517\n",
      "<=15         24\n",
      "Name: count, dtype: int64\n",
      "marital_status\n",
      "M    183437\n",
      "S    179577\n",
      "U     94284\n",
      "Name: count, dtype: int64\n",
      "education\n",
      " 3    217908\n",
      "-1    110369\n",
      " 2     74168\n",
      " 4     46693\n",
      " 1      8160\n",
      "Name: count, dtype: int64\n",
      "city_level\n",
      " 2    138993\n",
      " 1     97177\n",
      "-1     84764\n",
      " 3     69379\n",
      " 4     61110\n",
      " 5      5875\n",
      "Name: count, dtype: int64\n",
      "purchase_power\n",
      " 2    239270\n",
      "-1    100440\n",
      " 3     97891\n",
      " 4     10943\n",
      " 1      8605\n",
      " 5       149\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in users.columns:\n",
    "    print(users[i].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63fb3784523ff7b9",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## User_level"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "936d3229cf65c97a",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "客户的user_level取值为0、1、2、3或4，其中更高的user_level与过去更高的总购买价值相关联。对于企业用户（例如，农村地区的小商店或小型企业），相应的user_level取值为10。然而，对于首次购买者，他们的user_level取值为-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "918cabf9cde595b2",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:54:47.259314900Z",
     "start_time": "2024-02-29T05:54:47.231598400Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_level\n",
       " 2     141859\n",
       " 1     129429\n",
       " 3      96802\n",
       " 4      85728\n",
       "-1       2303\n",
       " 10      1016\n",
       " 0        161\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = users['user_level'].value_counts(dropna=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "e1f220b3-7083-470c-918f-843e32a4c95d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['missing', '100.0', '30.0', '40.0', '50.0', '60.0', '70.0', '80.0',\n",
       "       '90.0'], dtype=object)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "b57df94d8f6a9a95",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:54:47.780357400Z",
     "start_time": "2024-02-29T05:54:47.735697200Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts.sort_index(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "c6b37a73bfaa05b7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:58:32.747071100Z",
     "start_time": "2024-02-29T05:58:32.674843300Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 3, 4, 5, 6]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = list(range(len(counts.index)))\n",
    "categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "2005a614e95cb01d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:59:28.410822500Z",
     "start_time": "2024-02-29T05:59:28.228874Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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cJFL2gMAAABAeWbzFbGpU6cqPz9fmzdv1htvvGFpHzZsmOLj41W5cmVFRUXZpUgAAAAAcCU2B7G9e/cqIiJCAwYMkJubW6F9TZs21RNPPKGYmJhSFwgAAAAArsbmIJaXl6caNWrccb+Hh4cyMjJsHR4AAAAAXJbNQaxx48bat29fkftyc3O1c+dONW7c2ObCAAAAAMBV2RzExo8fr2+++UYjR47UhQsXJElZWVk6dOiQIiIilJiYqPHjx9utUAAAAABwFTavmjh+/Hh9/fXX+uijjyyrJnp7e0uSzGazhg0bRhADAAAAgCLYHMQkadWqVerXr5/Wrl2rM2fOyGw2q1GjRho+fLiGDBlirxoBAAAAwKWUKohJ0pAhQwhdAAAAAFACNj8jBgAAAACwTamviJ07d0716tWTJKWnp+v9999XUlKShgwZok6dOpW6QAAAAEmq++Z2R5dQIonRfRxdAoAyzOYg9p///Ed9+vRRcnKyfvzxR924cUNhYWH67rvvZDabtXjxYn3xxRfq3LmzPesFAAAAAKdn862JkZGRiouL05NPPilJ2rx5s06fPq1XXnlFf//731WxYkXNnj3bboUCAAAAgKuw+YrYjh07FBERoejoaEnS7t27Va9ePb333nuSpH379mnXrl32qRIAAAAAXIjNV8SuXLlieTZMkuLj49WxY0fLdq1atZSZmVm66gAAAADABdkcxGrVqqUzZ85IkjIyMnTs2DE1bdrUsv+nn37SAw88UPoKAQAAAMDF2BzEunbtqk8//VTjx49X3759lZubq+7du+vGjRvauHGjtm3bpi5dutixVAAAAABwDTY/IxYVFaWvvvpKS5culSSNHDlSjzzyiA4dOqQnnnhCVatW1WuvvWa3QgEAAADAVdgcxB544AHFx8drz549qlWrltq2bStJqlGjht58802NHTtWDRs2tFuhAAAAAOAqSvWBztWqVVP//v0LtdWrV08zZswoVVEAAAAA4MpsfkYMAAAAAGAbq66I1a9f36rB3NzcVKNGDXXt2lUTJ06Un59fqYoDAAAAAFdkVRBLTEy0esAffvhBMTExWrlypQ4cOKCgoCBba3OYc+fOFfqMNAAAAACwJ6tuTTx37pxVX2fPntXu3bsVERGhS5cuafr06SUqJj4+XmFhYfL09JS3t7dee+01FRQUSJI+++wzNWnSRN7e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bA5inp6eqlDhzt3T0tJsHRoAAAAAXJrNQaxt27basmWLMjIybtt36dIlbd68We3atStVcQAAAADgimz+HLE333xT3bt3V/v27VWrVi1J0rZt25SQkKDFixcrKyuLlRMBAAAAoAg2B7Hw8HB98MEHeumll3T69GlJ0oABA2Q2m1WxYkUtWrRI4eHhdisUAAAAAFyFzUFMkp555hk9/vjj+uc//6kzZ87IbDarUaNGGjJkiB544AF71QgAAAAALqVUQUySateurZdfftketQAAAABAuWDzYh1FMZvNOnr0qPLz8+05LAAAAAC4lFIFsU8//VRNmzbVpk2bJEnXrl1Ty5Yt9cADD1jaAAAAAACF2RzEDh8+rMGDB+vkyZMym82SJA8PD3Xp0kWZmZkaOnSoDhw4YLdCAQAAAMBV2BzEoqKiVKVKFR04cEARERGSpIoVK+qrr75SXFyc7rvvPr3zzjt2KxQAAAAAXIXNQSw+Pl4RERFq3779bfturZzIFTEAAAAAuJ3NQezq1au677777rj/vvvuU25urq3DAwAAAIDLsjmINWnSRFu3blV2dvZt+zIzM7V161aFhoaWqjgAAAAAcEU2B7EJEybowoULCg8P1xdffKErV67oypUr+te//qWuXbvq0qVLevHFF+1ZKwAAAAC4BJs/0HnUqFE6ePCgPvjgA/Xs2bPQPrPZrGeeeUajR48udYEAAAAA4GpsDmKStHjxYvXq1UurVq3Sd999J0kKCQnRqFGjNGDAALsUCAAAAACuplRBTJIGDBhA6AIAAACAErD5GTEAAAAAgG0IYgAAAABgMJuDWHBwsHr16mXPWgAAAACgXLA5iPn7++vKlSv2rAUAAAAAygWbg9hTTz2lY8eO6ezZs/asBwAAAABcns1BbOLEiWrRooWefvpppaSk2LMmAAAAAHBpNi9fHxMTo+nTp2vSpElq0qSJpk6dqhYtWtx2XKdOnUpTHwAAAAC4HJuDWJcuXWQymWQ2myVJr7zySpHH5efn2/oSAAAAAOCSbA5ib731lkwmkz1rAQAAAIByweYgFhkZaccyAAAAAKD84AOdi3Du3DlHlwAAAADAhZW5IFZQUKCIiIjbrrh99tlnatKkiby9vfXss88qJyfH6jG///57hYeHq0qVKuratavOnz9v2Tdx4kT5+vpq/fr1kqSUlBStW7fOLucC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vLw8vfvuu2ratKkqVaokf39/DR8+XD/99NM9PycAQPEIYgCAMis/P189e/bUnDlzVLduXb344osKDw/Xxo0b1bVrV2VkZBQ6/q233tKQIUN05coVPfPMM3r66acVFxenrl276osvvrjj6zz77LMaOnSoEhMT1aBBA3l5ed3rU5MknT9/Xq1bt9aHH36otm3b6qWXXlJQUJBmzZqlPn36qKCgQJLk4+Ojvn37KiYm5rYgtXXrVl27dk2jRo2ytOXl5al3795688035efnpxdffFGdO3fWxx9/rPbt2yspKcmQ8wMA3IUZAAADSTLf6dfPb/fFx8ebJZm7detW6Li//e1v5jp16pj37NljaTt8+LBZkrlTp07m3NxcS3tcXJxZkrl169aFxti9e7dZkrl+/fpmPz8/886dO0t9brfG7Ny5s1XH9+nTxyzJ/NlnnxVqHzBggFmSedu2bZa2Tz75xCzJHB0dfduxbm5u5suXL1vaZs+ebZZkfuONNwodO2/ePLMk86uvvlpkPefOnTNLMo8ePdqq+gEAtnN3QPYDAMAqNWrUkMlk0k8//aSkpCTVqlVLkjRhwgRNmDCh0LFr166VJPn6+urtt98utK9atWr69ttvlZGRoWrVqhXa9+OPP+qLL75Qt27d7uGZ3C41NVU7duyQr6+v9u/fr/3791v25efnS5K++uor9enTR5LUu3dv+fv76+OPP9Ybb7whScrIyNDOnTvVvXt3y/dGktasWSNJun79uqZNm2ZpT0tLs4wLAHAsghgAoMy6//77NWXKFL3zzjsKCgpSaGioWrZsqd/97nd64oknVLVqVcuxZ86ckSR98skn+uSTT4oc7+eff74tiPXv39/wECZJZ8+eldls1tWrV/XOO+8UecylS5csf/bw8NBTTz2lhQsX6syZM3rooYe0efNm5ebmFrotUfq/78X8+fOLHRcA4Bg8IwYAMFSFCjd/9dx6/umWW1eBbu2/5S9/+YtOnjypWbNmqWXLljp06JB+//vf66GHHtK5c+csx5nNZklSfHy8zGZzkV8hISG31dOyZUu7np+1btU7cODAO9a7bt26Qn1uBa5b7evWrVPVqlU1cODA28b28fG547g8IwYAjkcQAwAYKiAgQJJ04cKFQu23tmvUqGFpu3TpkmJiYlS7dm298sorWrFihU6ePKm//e1vSkpKKnQlqVGjRpKkkydP3vaa27Zt08KFC3X58mW7n4+tGjZsKJPJVGS9v/zyixYuXHjblb02bdooJCREH3/8sVJSUvTFF18oIiLitsVFGjVqpLS0tCLP94MPPtDixYvtezIAgBIjiAEADBUeHi5JWrBgQaH2hQsXFtov3QxQYWFh+vDDDwsdGxoaKkmFruwMGzZMkjR79mzLs1CSdPnyZY0cOVKvv/667rvvPvudSClVr15dvXv31pkzZ7R69epC++bMmaOXXnpJMTExt/UbOXKkTp48qalTp+rXX3+97bZESRo+fLikm6tI3rrSKEmfffaZ/vCHP9z2egAA45nMt+6NAADAAKdOnVLbtm2VlZWl8PBwPfzwwzp69Kh2796tKlWqKDY21nILYUpKipo1a6ZffvlFffr0UaNGjXT16lVt2LBBaWlpWr16tUaOHGkZe+rUqZoxY4Zq1qypfv36ydPTUxs3blRSUpLmz5+vl156yXLsnj17FB4erunTp1s+S6y0bo15//33q3///kUeExQUpKlTp0qSEhMT1bFjR/3888/q3r27mjdvrpMnT2rnzp1q2LChYmJiVL169UL9z58/r7p168psNisoKEg//fSTTCZToWNu3Lihnj17as+ePWratKnCw8OVlpamf/7zn3Jzc9OXX36pdu3a3VZbYmKi6tWrp9GjR2vlypV2+Z4AAO7AsPUZAQD4/44dO2YePHiw2d/f3+zm5mb29/c3Dx482Hz8+PHbjr148aJ54sSJ5kaNGpkrV65s9vX1Nf/ud78zb9iwocix169fb+7QoYPZy8vL7Ovra+7atav5iy++uO24W0vNT58+3W7ndWvMu309/PDDhfpcvnzZ/Nxzz5kDAwPNnp6e5oYNG5rfeOMN89WrV+/4Ol26dDFLMk+ePPmOx+Tm5ppnzJhhbty4sdnT09P8wAMPmIcNG2Y+c+bMHfuwfD0AGIcrYgAAAABgMJ4RAwAAAACDEcQAAAAAwGAEMQAAAAAwGEEMAAAAAAxGEAMAAAAAgxHEAAAAAMBgBDEAAAAAMBhBDAAAAAAMRhADAAAAAIMRxAAAAADAYAQxAAAAADAYQQwAAAAADPb/AGYKKnEsCXVYAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Level', fontdict={'size': 16})\n",
    "plt.yticks(size=11)\n",
    "plt.xticks(categories, ['-1', '0', '1', '2', '3', '4', '10'], size=11)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "382a5f5ddd773d2b",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## User Gender"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "c952042058e4c689",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:44:44.653658300Z",
     "start_time": "2024-02-28T11:44:44.628696800Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gender\n",
       "F    292897\n",
       "M    107084\n",
       "U     57317\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = users['gender'].value_counts(dropna=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "dd9efa3ecea25c94",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:45:36.167060400Z",
     "start_time": "2024-02-28T11:45:36.146657Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "categories = counts.index.values\n",
    "proportions = counts / counts.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "cd096d8237184e9f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T11:48:56.345484900Z",
     "start_time": "2024-02-28T11:48:56.287433200Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Gender (Estimate)', fontdict={'size': 16})\n",
    "plt.yticks(size=11)\n",
    "plt.xticks(size=11)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa2d95cb36d5b138",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## user age"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "7df6ceca6b25af",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:57:51.996218500Z",
     "start_time": "2024-02-28T12:57:51.973577600Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "age\n",
       "26-35    183239\n",
       "16-25    103306\n",
       "36-45     81076\n",
       "U         56457\n",
       "46-55     18679\n",
       ">=56      14517\n",
       "<=15         24\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = users['age'].value_counts(dropna=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "634a562d2354811f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:57:53.272039400Z",
     "start_time": "2024-02-28T12:57:53.256383900Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CategoricalIndex(['26-35', '16-25', '36-45', 'U', '46-55', '>=56', '<=15'], categories=['<=15', '16-25', '26-35', '36-45', '46-55', '>=56', 'U'], ordered=True, dtype='category')"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts.index = pd.Categorical(counts.index, categories=['<=15', '16-25', '26-35', '36-45', '46-55', '>=56', 'U'],\n",
    "                              ordered=True)\n",
    "counts.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "71635596c246488c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:59:26.821347900Z",
     "start_time": "2024-02-28T12:59:26.787741500Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<=15         24\n",
       "16-25    103306\n",
       "26-35    183239\n",
       "36-45     81076\n",
       "46-55     18679\n",
       ">=56      14517\n",
       "U         56457\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts.sort_index(inplace=True)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "8e81b9d3db7820a2",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:59:34.515213Z",
     "start_time": "2024-02-28T12:59:34.476271500Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "d5705f63501e6bfb",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:59:35.006059700Z",
     "start_time": "2024-02-28T12:59:34.936093300Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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ssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLInu8CSlZWFsLAwXLlyBUKISqkhJiamUvZLREREhZNVYDl//jxcXV0xduxYdOzYET4+PkhNTQUANGvWDAqFQusrf1lJEhIS0KdPH1hZWaF58+a4fPmytGzBggVQKpVYvHgxACA7OxsrV6409KERERFRGcgmsOTk5GDw4MEIDg5GZGQkYmJikJaWhmXLliEjIwOXL1/G9evXkZKSIn0plcoS+xVCoG/fvnj48CHCwsLw6aefonfv3khPTwcAzJs3D9u2bcP3338PAPjtt98waNCgcj1WIiIiKh3ZBBa1Wo2JEydi5MiRAIBq1arB09MTycnJOH/+PNzc3PD666/DxsZG+lIoFCX2e+bMGZw9exarVq2Cp6cnRowYAU9PT+zatQsAkJSUhPbt2yMxMREAEBERgaZNm5bTURIREZE+ZBNYbG1tMWHCBOn1iRMncOTIEQwaNAinT59GRkYGnJycULVqVbRv3x6XLl3Sqd/w8HC4uLigQYMGUlvr1q0RGhoKAFAqlfj777+hVCpx+PBhdO7c2bAHRkRERGVmUtkFFKZRo0aIiorCd999hxYtWuA///kP2rRpg8DAQFhYWGDGjBno2bMnYmNjYWpqWmxfarUaderU0WpTqVRS4Bk5ciQaN26Mzz77DIcOHcLChQtLrC8rKwtZWVnSa41GAyBv/kt2dnZpD5dIJ2bGFTMJne9hIqpIuv7OkWVgOXToELZs2YKAgAC0atUKmzZt0lr+yy+/wM7ODseOHUPXrl2L7cvExATm5uZabRYWFtIclkWLFuHrr7/G3bt3cfHiRYwcORJnzpzBhg0b0KpVq0L7nDt3LoKCggq0Hz58GBYWFqU5VCKdzfOpmP3s37+/YnZERATg8ePHOq0ny8Di6OiIyZMnIzo6GitWrECnTp20lltYWECpVOp0+bG9vT3i4+O12tRqNczMzKTXKpUKwcHBGDx4ML799lt8/PHH+OGHH7Bly5ZC+5w2bRomT54svdZoNHB2doafnx+sra1Lc6hEOmsYeKhC9hMVWPx/AoiIDCn/U4qSyCawhIeHY/bs2di2bZs0mdbMzAxCCDRs2BD79++Hi4sLAODmzZtISEiQXhfH19cXn3zyCVJTU2FjYwMACAsL09o2Li4O1atXR1paGpycnODt7Y0DBw4U2aeZmZlW4Mlnampa4kdURPrKyil5krkh8D1MRBVJ1985spl0W69ePZw9exbjx4/H7du3cfDgQWzevBkjRoyAl5cXRo0ahdDQUBw7dgwDBw5E/fr14efnBwB4+vQp1Gp1of16eXnB09MTAQEByM3NRXh4OHbs2IHevXtL66xevRqjR4+GSqXCgwcPcOPGDdja2lbIcRMREVHJZBNYLC0tcfDgQVy9ehVeXl6YNGkSli5dil69euHnn3+Gg4MDOnfujHfffRfNmjXDyZMnYWKSd4Lo119/haura5F9r127Frt370aNGjXQsmVL+Pv7o1u3bgDyJvuYmppCpVLBy8sLXl5emDlzJj766KMKOW4iIiIqmUJU1v3vK1hGRgZOnjwJBwcHtGjRwqB9azQaKJVKqNVqzmGhcuM2dV+F7Cc2uEeF7IeICND9b6hs5rCUN0tLS7z99tuVXQYRERHpQTYfCREREREVhYGFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGSPgYWIiIhkj4GFiIiIZI+BhYiIiGTP4IElJycHycnJem+flZWFsLAwXLlyBUIIA1amu5iYmErZLxERERWuTIFlz549mDhxovR6+fLlsLa2hoODA/z8/JCenl6q/s6fPw9XV1eMHTsWHTt2hI+PD1JTUwEABw4cQIMGDaBUKvH+++8jMzNT537//vtvdOjQAdWqVUPHjh1x584dadmkSZOgUqmwdetWAEBSUhK2bNlSqrqJiIiofOkdWHbu3Il33nkHe/bsAQBcu3YNn3zyCczNzeHu7o6jR49iwYIFOveXk5ODwYMHIzg4GJGRkYiJiUFaWhqWLVuGK1euoE+fPhgyZAguXbqE5ORkBAQE6NRvZmYmunbtChsbG0RGRqJLly7o168fcnNzkZGRgTVr1mDNmjVYtGgRAGDNmjUYPXp06QeEiIiIyo3egWX+/Pl47bXXcObMGQDA9u3bUaVKFVy6dAlXr15F48aN8dtvv+ncn1qtxsSJEzFy5EgAQLVq1eDp6Ynk5GT8+OOPaNq0KWbMmAEPDw8sWbIEq1at0uksy/bt2xEfH49Vq1bhtddew7Rp05CRkYEzZ84gOTkZNjY2aNKkCRITE5GZmYnU1FTUqFFDrzEhIiKi8qF3YLl69Sp69eqFmjVrAgDCwsLQpk0buLi4wNTUFJ06dcLdu3d17s/W1hYTJkyQXp84cQJHjhzBoEGDEB4ejm7duknLHB0dYW9vj6ioqBL7DQ8PR4sWLWBnZye1+fr6IjQ0FNbW1tBoNEhISIBSqcSmTZvg7++vc81ERERUMUz03VChUCAnJ0d6HR4ejnfffVd6nZ2dDUtLS736btSoEaKiovDdd9+hRYsWUKvVqFOnjtY6KpUK9+7dQ/PmzYvtq7htlUolOnbsiLZt22LhwoW4du0axo4dW2J9WVlZyMrKkl5rNBoAececnZ2t62ESlYqZccVMQud7mIgqkq6/c/QOLK+//jp+//13TJ06FWfOnMG9e/fQrFkzAHnzUY4fP14gKOjq0KFD2LJlCwICAtCqVSuYmJjA3Nxcax0LCwudJvWamJjA2Ni4wLbx8fEAgB07diA1NRWnTp1C3bp10aNHD8TFxWHbtm2oW7duoX3OnTsXQUFBBdoPHz4MCwsLXQ+TqFTm+VTMfvbv318xOyIiAvD48WOd1tM7sHz66acYNmwYnJycAAA2Njbo2bMn/vnnHwwcOBDR0dH45Zdf9Orb0dERkydPRnR0NFasWAF7e3spYORTq9UwMzMrsS97e3tcvXq12G1tbGxw/Phx+Pn5Qa1Wo1OnTli9ejWCg4ML7XPatGmYPHmy9Fqj0cDZ2Rl+fn6wtrYuzaES6axh4KEK2U9UYNcK2Q8REfD/P6Uoid6BZejQoUhKSsK6detQs2ZNfPvtt7CyssJff/2FqKgofPDBBxg1apTO/YWHh2P27NnYtm0bFAoFAMDMzAzGxsbw9fVFSEgIPv30UwBAeno6rl27BhcXlxL79fX1xZo1a5CTkyOdaQkLC0Pfvn2ldc6fP4+WLVsiMTERHh4eaNiwoTSZuDBmZmaFhiVTU1OYmprqfMxEpZGVo6iQ/fA9TEQVSdffOWW6D8uECRMQHh6O/fv3Sx8HvfHGG0hNTcXy5cul4KGLevXq4ezZsxg/fjxu376NgwcPYvPmzRg6dCiGDBmCXbt24dSpUwCAoKAgODg4SPNXMjMzkZaWVmi/fn5+yM7Oxvz58wEAe/fuxfnz59GrVy9pna1bt2LAgAFQqVSIi4vDrVu3YGtrq9eYEBERkeHpfYalKPqeZbC0tMTBgwcxYcIEeHl5wcnJCUuXLpWCRWBgIDp16gQ7Ozukp6dj27ZtMDLKy1vBwcHYtWsXIiIiCq1n8+bNGDRoEBYvXoykpCTMmjUL9evXBwDprIqJiQk6dOiAuXPnYuPGjfwcn4iISEYUorLuf6+HmJgYREZGwsfHB46OjqXaNjk5GSEhIXjttdfg5eVl0Lo0Gg2USiXUajXnsFC5cZu6r0L2Exvco0L2Q0QE6P43VO8zLGlpaTA2Nq7Qq2Lc3d3h7u6u17a2trbo3bu3gSsiIiKiiqD3HBYXFxd06dLFkLUQERERFUrvwOLp6Sk9mJCIiIioPOkdWEaOHIlr167h4sWLhqyHiIiIqAC9A8sHH3wAPz8/DBo0CDdu3DBkTURERERa9J50u3HjRgwYMABz585F06ZNMW7cODRt2rTAesOHDy9LfURERET6X9ZsZGQEhUKB5zd//kZxQogCD0h8WfGyZqoIvKyZiF5G5X5Z89q1a/XdlIiIiKhU9A4sI0aMMGQdREREREUq07OEiIiIiCqCwQLL06dPAQBPnjwxVJdEREREAMoYWK5evYpBgwbBwcFBukX/mjVr4OzsjD179hikQCIiIiK957BERUWhdevWSE9P17o6SKVS4cGDB+jfvz/Onz9f6KXORERERKWh9xmW6dOnIycnBzt37sRXX30ltQ8ZMgQRERGwtLREUFCQQYokIiKiV5vegeXkyZPo378/3nnnHRgbG2sta9iwIQYOHIjQ0NAyF0hERESkd2DJzs5G9erVi1xuamoKjUajb/dEREREEr0DS/369XHq1KlCl2VlZeHgwYOoX7++3oURERER5SvTww8vXLiAYcOG4e7duwCA9PR0nDt3Dv3790dsbCw++OADgxVKREREry69rxL64IMPcPr0aWzcuFG6SkipVALIe47QkCFDGFiIiIjIIPQOLACwfv169OrVC5s3b8aNGzcghEC9evUwdOhQDBgwwFA1EhER0SuuTIEFAAYMGMBwQkREROWKzxIiIiIi2StzYImJiZH+rVarMWfOHEyYMKHIK4iIiIiISkvvj4QePXqEHj16IDExEbdu3cLTp0/h6+uL69evQwiB5cuX48iRI2jXrp0h6yUiIqJXkN5nWAIDAxEeHo53330XALBz505cu3YNn332GX755RdUqVIF8+fPN1ihRERE9OrS+wzL/v370b9/fwQHBwMAjh8/Dnd3dyxYsAAAcOrUKRw6dMgwVRIREdErTe8zLAkJCXB3d5deR0REoE2bNtLrmjVrIi0trWzVEREREaEMgaVmzZq4ceMGAECj0eDy5cto2LChtPz27duoXbt22SskIiKiV57egaVjx474/fff8cEHH6Bnz57IyspC586d8fTpU2zfvh179+5F+/btDVgqERERvar0nsMSFBSEY8eOYdWqVQCAYcOG4Y033sC5c+cwcOBAWFlZ4YsvvjBYoURERPTq0juw1K5dGxEREThx4gRq1qwJHx8fAED16tUxdepUjBo1CnXr1jVYoURERPTqKtOt+a2trdG7d2+tNnd3d8yZM6dMRRERERE9j7fmJyIiItnT6QyLh4eHTp0ZGxujevXq6NixIyZNmgQ7O7syFUdEREQE6BhYYmNjde7wn3/+QWhoKNatW4czZ87A2dlZ39qIiIiIAOgYWJ5/wGFxcnJycPfuXfz000/Ytm0bZs2ahTVr1pSpQCIiIiKdAourq6vOHXp4eKBdu3bw8fHB4cOH9S6MiIiIKF+5Tbp988038ejRo/LqnoiIiF4h5RZY/vnnH1SrVq28uiciIqJXiMEDS25uLpYtW4a9e/eiZcuWhu6eiIiIXkEGvaw5NzcXDx48wLNnz2BsbIzp06eXqTgiIiIioBwuazYyMkLLli0xZ84ctGnTRt+6iIiIiCQGvazZ2NgYtra2sLCwKFNRRERERM8z+GXNL4OYmBi4u7tXdhlERET0f2T1LKGIiAj4+vrCzMwMSqUSX3zxBXJzcwEAzZo1g0Kh0PpKTU3Vqd+EhAT06dMHVlZWaN68OS5fviwtW7BgAZRKJRYvXgwAyM7OxsqVKw1+bERERKQ/2QSWtLQ0dO/eHR06dEBsbCy2bt2Kn376CevXr0dGRgYuX76M69evIyUlRfpSKpUl9iuEQN++ffHw4UOEhYXh008/Re/evZGeng4AmDdvHrZt24bvv/8eAPDbb79h0KBB5XqsREREVDo6fSRUEaKjo+Hv7485c+YAAGrVqoU333wToaGhcHNzg5ubG15//fVS93vmzBmcPXsW0dHR8PT0hKenJ/773/9i165d8Pf3R1JSEtq3b4/ExEQAeWd5/P39DXpsREREVDayCSytWrVCq1atpNc5OTm4evUqunfvjtOnTyMjIwNOTk5ISkpCy5YtsXjxYnh7e5fYb3h4OFxcXNCgQQOprXXr1ggNDYW/vz+USiX+/vtvKJVKHD58GJ07dy6xz6ysLGRlZUmvNRoNgLyPk7Kzs0tz2EQ6MzMWFbIfvoeJqCLp+jtHNoHl31asWIEnT55g1KhR+OSTT9CmTRsEBgbCwsICM2bMQM+ePREbGwtTU9Ni+1Gr1ahTp45Wm0qlwqVLlwAAI0eOROPGjfHZZ5/h0KFDWLhwYYm1zZ07F0FBQQXaDx8+zCukqNzM86mY/ezfv79idkREBODx48c6racQQlTMf9tKITo6Gj4+Pli5ciWGDh1aYPnjx49hZ2eHXbt2oWvXrsX2FRwcjD///BP79u2T2lavXo0tW7bgjz/+AACkpKTg7t27uHjxIk6ePIkzZ85gw4YNWmd8nlfYGRZnZ2ckJibC2tpan0MmKlHDwEMVsp+owOJ/poiIDEmj0cDe3h5qtbrYv6GyO8OSnJyMvn37YvTo0YWGFQCwsLCAUqnU6f4w9vb2iI+P12pTq9UwMzOTXqtUKgQHB2Pw4MH49ttv8fHHH+OHH37Ali1bCu3TzMxMa/t8pqamJZ7xIdJXVo6iQvbD9zARVSRdf+fI5iohIO/MSZ8+feDu7i5dZvzs2TM0bNgQd+7ckda7efMmEhIS4OLiUmKfvr6+iI6O1roEOiwsTGvbuLg4VK9eHWlpaXBycoK3t7c0CZeIiIgqn2wCixACgwYNQmJiItatW4fMzEykp6cjOzsbXl5eGDVqFEJDQ3Hs2DEMHDgQ9evXh5+fHwDg6dOnUKvVhfbr5eUFT09PBAQEIDc3F+Hh4dixYwd69+4trbN69WqMHj0aKpUKDx48wI0bN2Bra1shx01EREQlk01guXLlCvbu3YurV6/C0dERVlZWsLKyQvfu3fHzzz/DwcEBnTt3xrvvvotmzZrh5MmTMDHJ+0Tr119/LfZuvGvXrsXu3btRo0YNtGzZEv7+/ujWrRuAvNnJpqamUKlU8PLygpeXF2bOnImPPvqoQo6biIiISibLSbflISMjAydPnoSDgwNatGhh0L41Gg2USmWJE4aIysJt6r6SVzKA2OAeFbIfIiJA97+hOk263bRpE6KjozF37lyDFVjRLC0t8fbbb1d2GURERKQHnT4SCgoKQnR0tFabh4eHNDGWiIiIqDzpFFhu376tdadYAIiNjUVKSkq5FEVERET0PJ0Ci0qlKvIqHCIiIqLyptMcljfffBMbN26Ek5MTnJ2dpfbLly9jw4YNxW47fPjwslVIRERErzydrhK6desWunTpgpiYGCgUeXfbFEJI/y5M/vKcnBzDVStTvEqIKgKvEiKil5FBrxLy8PDAlStXcPbsWdy7dw+5ubkYPXo0evXqhb59+xqsaCIiIqLC6PwsIQsLC3Tq1El6PXr0aDRu3BgjRowol8KIiIiI8snmTrdERERERdH7ac1r165FkyZNDFkLERERUaH0Diz8KIiIiIgqit6BJV9SUhK2bt2Kv/76CwDQoEEDvPvuu7CzsytzcURERERAGQPLzp07MXLkSKSnpyP/6miFQoFp06Zh3bp16NOnjyFqJCIiolec3oElLCwM7733HkxMTPDZZ5+hWbNmAIDw8HAsX74c7733HkJCQtC8eXODFUtERESvJr0DS1BQEExMTHD27Fk0btxYah88eDCGDx+OVq1aISgoCHv27DFIoURERPTq0vuy5pCQEPTv318rrORr1KgRBgwYgD///LNMxREREREBZQgsz549g7m5eZHLq1Sp8krclp+IiIjKn96BpVmzZtixYwcePHhQYNn9+/exc+dOzl8hIiIig9A7sEybNg3Jycnw8fHBihUrEBoainPnzmHFihVo1aoVUlJSMG3aNEPWSkRERK8ovSfdduvWDYsWLcKUKVPw8ccfay1TKBRYtGgR/Pz8ylwgERERUZnuwzJp0iT4+flhzZo1uHr1KoC8G8eNHDkSXl5eBimQyG3qvgrZT2xwjwrZDxERlV6Z73TboEEDLFiwwBC1EBERERWKT2smIiIi2WNgISIiItljYCEiIiLZY2AhIiIi2WNgISIiItljYCEiIiLZY2AhIiIi2WNgISIiItljYCEiIiLZY2AhIiIi2WNgISIiItkzWGB5+vQpAODJkyeG6pKIiIgIQBkDy9WrVzFo0CA4ODjAwsICALBmzRo4Oztjz549BimQiIiISO+nNUdFRaF169ZIT0+HQqGQ2lUqFR48eID+/fvj/PnzaNq0qSHqJCIioleY3mdYpk+fjpycHOzcuRNfffWV1D5kyBBERETA0tISQUFBBimSiIiIXm16B5aTJ0+if//+eOedd2BsbKy1rGHDhhg4cCBCQ0PLXCARERGR3oElOzsb1atXL3K5qakpNBqNvt0TERERSfQOLPXr18epU6cKXZaVlYWDBw+ifv36ehdGRERElE/vwPLBBx/gwoULGDZsGO7evQsASE9Px7lz59C/f3/Exsbigw8+MFihRERE9OrS+yqhDz74AKdPn8bGjRulq4SUSiUAQAiBIUOGMLAQERGRQegdWABg/fr16NWrFzZv3owbN25ACIF69eph6NChGDBggKFqJCIioldcmQILAAwYMOClCycxMTFwd3ev7DKIiIjo/+g9h+Wbb77Bjh07SlxPo9FACKFTnxEREfD19YWZmRmUSiW++OIL5ObmAgAOHDiABg0aQKlU4v3330dmZqbOtf7999/o0KEDqlWrho4dO+LOnTvSskmTJkGlUmHr1q0AgKSkJGzZskXnvomIiKj86R1YFi5ciAsXLhS7zieffAJbW1s0btwYKSkpxa6blpaG7t27o0OHDoiNjcXWrVvx008/Yf369bhy5Qr69OmDIUOG4NKlS0hOTkZAQIBOdWZmZqJr166wsbFBZGQkunTpgn79+iE3NxcZGRlYs2YN1qxZg0WLFgHIe7TA6NGjdRsEIiIiqhB6B5Z+/frh5s2beP/999G1a1eMHz8e165dk5ZHRERg2bJl6N69O27cuIGlS5cW2190dDT8/f0xZ84c1KpVC127dsWbb76J0NBQ/Pjjj2jatClmzJgBDw8PLFmyBKtWrdLpLMv27dsRHx+PVatW4bXXXsO0adOQkZGBM2fOIDk5GTY2NmjSpAkSExORmZmJ1NRU1KhRQ99hISIionKg9xyW9957D927d5de//HHH9iwYQPOnj2LRo0a4dy5c1AoFFi3bh3GjBmDffv24euvvy6yv1atWqFVq1bS65ycHFy9ehXdu3fHpk2b0LNnT2mZo6Mj7O3tERUVhebNmxdbZ3h4OFq0aAE7OzupzdfXF6GhoWjUqBE0Gg0SEhKgVCqxadMm+Pv7l3jsWVlZyMrKkl7n3yAvOzsb2dnZJW5PpWNmrNtHimUl9+8dx4GIXka6/s7RO7DMmTMH1atXx86dO+Ht7Y1Lly6hX79++Pzzz3H48GE8evQIAGBnZ4c6derg9OnTpep/xYoVePLkCUaNGoWffvoJderU0VquUqlw7969EgOLWq0uclulUomOHTuibdu2WLhwIa5du4axY8eWWNvcuXMLfU7S4cOHpadWk+HM86mY/ezfv79idqQnjgMRvYweP36s03p6B5aIiAiMGjUKvr6+APLOWgwaNAjr1q2TCjAzMwMAmJubIzU1Vee+o6Oj8eWXX2LlypWwsbGBiYkJzM3NtdaxsLBAenp6iX2ZmJgUeNaRhYUF4uPjAQA7duxAamoqTp06hbp166JHjx6Ii4vDtm3bULdu3UL7nDZtGiZPniy91mg0cHZ2hp+fH6ytrXU+TtJNw8BDFbKfqMCuFbIffXEciOhlpOtjfPQOLNWrV8fNmze12m7evCndPC41NRUODg4AgCdPnhQIHEVJTk5G3759MXr0aAwdOhQAYG9vLwWMfGq1WgpExbG3t8fVq1eL3dbGxgbHjx+Hn58f1Go1OnXqhNWrVyM4OLjQPs3MzArdt6mpKUxNTUusiUonK0dRIfuR+/eO40BELyNdf+foPel22LBh2L9/P7p3746AgAB0794d+/fvR6NGjZCamoqjR48iIyMDT58+xY0bN+Dk5FRin48fP0afPn3g7u6OxYsXS+2+vr4ICQmRXqenp+PatWtwcXEpsU9fX1+cPXsWOTk5UltYWJjWtufPn0fLli2RmJgIDw8PNGzYEImJiboOBREREZUzvQNLQEAAxo0bh8OHDyM4OBhHjhzBtGnTcPfuXdjZ2eHvv/9Go0aN0L59exw6dAhvvfVWsf0JITBo0CAkJiZi3bp1yMzMRHp6Op48eYIhQ4Zg165d0sMWg4KC4ODgIM1fyczMRFpaWqH9+vn5ITs7G/PnzwcA7N27F+fPn0evXr2kdbZu3YoBAwZApVIhLi4Ot27dgq2trb5DQ0RERAamd2AxMTHBsmXLkJiYiNDQUNy7dw+zZ8/G77//jk8++QTr16/Hvn37YGpqCmdnZ0yfPr3Y/q5cuYK9e/fi6tWrcHR0hJWVFaysrNC9e3d4e3sjMDAQnTp1Qs2aNbF8+XKsXr0aRkZ55QcHBxcZiExNTbF582Z8//33qFGjBvr06YNZs2ZJT5LOP6tiYmKCDh06ICsrCxs3bsSIESP0HRoiIiIyMIXQ9Ta0MhATE4PIyEj4+PjA0dGxVNsmJycjJCQEr732Gry8vAxal0ajgVKphFqt5qTbcuA2dV+F7Cc2uEeF7EdfHAciehnp+je0zM8Sqkju7u56P+PH1tYWvXv3NnBFREREVBHKHFji4+Pxzz//aE1qBfKuEvrtt9+wefPmsu6CiIiIXnF6B5a0tDQMGzYMe/bsKXY9BhYiIiIqK70n3X777bf4/fff0b9/fzRr1gxGRkaYMWMGJk+ejKpVq0KlUmH9+vWGrJWIiIheUXqfYdm9eze6deuGrVu3IjQ0FG3atEGPHj3g4+ODrl27omvXrsjIyDBkrURERPSK0vsMS1xcHBo2bAgA8PHxgbm5OS5evAgA6Ny5M9q1a4eff/7ZMFUSERHRK03vwOLg4IA7d+7kdWJkBC8vL0RGRkrL33jjDVy7dq3sFRIREdErT+/A0qFDB+zcuROLFi0CALRp0wZ79uyR7jh76dIl6blCRERERGWhd2CZNWsWbG1t8cUXXwDIe7ZQQkIC3N3dUadOHZw4cQJdu/Kpr0RERFR2egcWNzc3hIWFYerUqQDyPgJasmQJMjMzcevWLbRo0aLIpx0TERERlYbegQUAnJycMHv2bOn1Rx99hLS0NCQnJyM0NBQ1a9Ysc4FEREREZQoshVEoFLCxsTF0t0RERPQKM3hgAYCcnBzs2bMHERER5dE9ERERvWL0DiyjR4/Grl27Cl1mbGyM7777DmPGjNG3eyIiIiKJ3oFl3bp1CA8PL3K5r68vrl69qm/3RERERJJy+UgIyDvLYmpqWl7dExER0SukVM8Syr+zbT61Wl2gDQBu3bqFrVu3omnTpmUqjoiIiAgoZWBxc3ODQqGQXi9duhRLly4tdF0zMzNs2bKlbNURERERoZSBZfjw4VAoFBBCYMOGDWjUqBG8vb211jEyMoKbmxsGDRqE119/3aDFEhG5Td1XIfuJDe5RIfshIt2UKrCsW7dO+veGDRvQu3dvfPPNN4auiYiIiEhLuU26JSIiIjIUvQPLiBEj8MYbbxiyFiIiIqJCleojoeetXbvWkHUQERERFUnvwAIAjx8/xunTpxEfHw8hRKHrDB8+vCy7ICIiItI/sERGRqJHjx548OBBocuFEFAoFAwsREREVGZ6B5YJEybg/v376NWrF7p16wYLCwtD1kVEREQk0TuwXLp0CZ07d8bu3bsNWQ8RERFRAXpfJVStWjU0bNjQkLUQERERFUrvwPLOO+9g586dePz4sSHrISIiIipA78Dy/fffw8bGBl27dsX169cNWRMRERGRFr3nsEyaNAl169bF9u3bpWcK1a1bF1WqVJHWUSgUWL16tUEKJSIioleX3oHl+ecKPXv2DGFhYQgLC9Nah4GFiIiIDEHvwBITE2PIOoiIiIiKpHdgcXV1NWQdREREREUq89OahRCIjo7G4cOHAQA3b97EjRs3ylwYERERUb4yBZYNGzbAyckJjRs3xttvvw0AOHToEOrXr4+vvvrKIAUSERER6R1Yfv/9d4wcORIajQZOTk7Sww8bNWoEd3d3LFiwADt27DBYoURERPTq0juwzJkzBzVr1sS1a9cwbNgwqb1t27aIiIiAh4cHFi1aZJAiiYiI6NWmd2C5fPky+vXrh9q1a0OhUGgtq1atGnr27Ino6OgyF0hERESkd2AxMzODkVHRm6empurbNREREZEWvQOLj48Pdu3aBY1GU2DZvXv3sHPnTrRs2bJMxREREREBZbgPy9SpU9G5c2e0atUKNWvWBADs3bsX0dHRWL58OdLT03mlEBERERmE3oGlQ4cO+Pnnn/Hpp5/i2rVrAPKe4CyEQJUqVbBs2TJ06NDBYIUSERHRq0vvwAIAY8eOxdtvv43//e9/uHHjBoQQqFevHgYMGIDatWsbqsYKFxMTA3d398oug4iIiP5Pme906+joiIkTJ+Knn37CsmXLMHHixDKFldzcXPTv3x+BgYFa7c2aNYNCodD60nVib0JCAvr06QMrKys0b94cly9flpYtWLAASqUSixcvBgBkZ2dj5cqVetdPREREhlfmwPI8IQQiIyORk5Oj1/aZmZkYOXJkgRvOZWRk4PLly7h+/TpSUlKkL6VSqVNNffv2xcOHDxEWFoZPP/0UvXv3Rnp6OgBg3rx52LZtG77//nsAwG+//YZBgwbpVT8RERGVjzIFlt9//x0NGzaUAsbjx4/h7e2N2rVr63WX2/Hjx6NKlSpo3bq1Vvv58+fh5uaG119/HTY2NtLXv+//UpgzZ87g7NmzWLVqFTw9PTFixAh4enpi165dAICkpCS0b98eiYmJAICIiAg0bdq01LUTERFR+dF7Dsv58+fRr18/5ObmSrflNzU1Rfv27XHu3DkMGjQIJ0+eLBA+ihMQEIA6deqgffv2Wu2nT59GRkYGnJyckJSUhJYtW2Lx4sXw9vYusc/w8HC4uLigQYMGUlvr1q0RGhoKf39/KJVK/P3331AqlTh8+DA6d+5cYp9ZWVnIysqSXudf2p2dnY3s7Gwdj5Z0ZWYsKmQ/cv/ecRzycByIXi66/qzpHViCgoJQrVo1HDx4EK1atQIAVKlSBceOHcP169fRokULzJ49G/v27dO5zzp16hTafu3aNbRp0waBgYGwsLDAjBkz0LNnT8TGxsLU1LTYPtVqdYF+VSoVLl26BAAYOXIkGjdujM8++wyHDh3CwoULS6xz7ty5CAoKKtB++PBhWFhYlLg9lc48n4rZz/79+ytmR3riOOThOBC9XB4/fqzTenoHloiICPTv318KK8/Lv1Jo586d+navZdOmTVqvf/nlF9jZ2eHYsWPo2rVrsduamJjA3Nxcq83CwkKaw7Jo0SJ8/fXXuHv3Li5evIiRI0fizJkz2LBhQ6HHBgDTpk3D5MmTpdcajQbOzs7w8/ODtbW1PodIxWgYeKhC9hMVWPx7qbJxHPJwHIheLoXdgLYwegeWlJQUVK1atcjlVatW1frYxJAsLCygVCoRExNT4rr29vaIj4/XalOr1TAzM5Neq1QqBAcHY/Dgwfj222/x8ccf44cffsCWLVsK7dPMzExr+3ympqYlnvGh0svKKXmukiHI/XvHccjDcSB6uej6s6b3pNsGDRpgz549yMjIKLAsLS0Ne/bsgZeXl77dS549e4aGDRvizp07UtvNmzeRkJAAFxeXErf39fVFdHS01iXQYWFhWtvGxcWhevXqSEtLg5OTE7y9vaVJuERERFT59A4sEyZMwN27d9GhQwccOXIECQkJSEhIwB9//IGOHTvi3r17+OSTT8pcoImJCby8vDBq1CiEhobi2LFjGDhwIOrXrw8/Pz8AwNOnT6FWqwvd3svLC56enggICEBubi7Cw8OxY8cO9O7dW1pn9erVGD16NFQqFR48eIAbN27A1ta2zLUTERGRYej9kdDw4cNx9uxZ/PzzzwXmkQghMHbsWIwYMaLMBQLAzz//jHHjxqFz584wNzdHnz59MHfuXJiY5JX/66+/YtKkSUXeSG7t2rXo2bMn/ve//yE1NRXDhw9Ht27dAOTNTjY1NYVKpYKNjQ28vLwwc+ZM/PbbbwapnYiIiMpOIfKvSdbT7t27sX79ely/fh0A4OnpieHDh+Odd94xSIGGkpGRgZMnT8LBwQEtWrQwaN8ajQZKpRJqtZqTbsuB21TdrzQri9jgHhWyH31xHPJwHIheLrr+DS3Ts4SAvAceyi2cFMbS0hJvv/12ZZdBREREejDorfmJiIiIygMDCxEREcme3oHFxcVFmrhKREREVJ70Diz29vZISEgwZC1EREREhdI7sLz33nu4fPkybt68ach6iIiIiArQO7BMmjQJTZs2xeDBg5GUlGTImoiIiIi06H1Zc2hoKGbNmoXJkyejQYMGmD59Opo2bVpgvbZt25alPiIiIiL9A0v79u2hUCiQf9+5zz77rND1cnJy9N0FEREREYAyBJaZM2dCoaiYp6YSERHRq03vwBIYGGjAMoiIiIiKxhvHERERkewxsBAREZHslSmwPHz4EF999RVatGiB2rVrAwBWrFiBNm3a4MKFCwYpkIiIiEjvOSx37tyBr68vHjx4AADSBFyFQoGzZ8+iU6dOCA8Px2uvvWaYSomIiOiVpfcZloCAADx8+BCLFy/Gxx9/LLV/+OGH2LdvH7KzsxEUFGSQIomIiOjVpndgOXToEPr06YOJEyfCxsZGa1n37t0xcOBAnDhxoozlEREREZUhsKSnp8Pd3b3I5TY2NkhMTNS3eyIiIiKJ3oGlTp06RU6szc3NxfHjx+Hh4aF3YURERET59A4s/v7+OHnyJKZPn460tDSpPSEhAR999BGio6MxbNgwgxRJRERErza9rxL6/PPP8ccff2Du3LnSFUJ2dnZITU2FEALt27fH559/brBCiYiI6NWl9xkWExMTHDx4EPPmzUPjxo1hbm6OJ0+eoHHjxpg3bx4OHToEExO98xARERGRpEyJwsTEBFOmTMGUKVMMVQ8RERGVktvUfRWyn9jgHhWyn8KUOrA8ePAAd+7cQdWqVeHp6YkqVaqUR11EREREEp0/Erp48SJatmwJJycntG7dGt7e3rC1tcUXX3yBp0+flmeNRERE9IrT6QxLdHQ0OnTogPT0dDg5OcHFxQWZmZn466+/sGjRIty9exdbtmwp71qJiIjoFaXTGZbAwEBkZGTg119/xZ07dxASEoILFy7g/v37ePPNN/G///0Ply5dKu9aiYiI6BWlU2A5efIk2rdvj/fee0+r3cbGBsHBwRBC4NSpU+VSIBEREZFOgSUpKQlNmjQpdFnjxo0BACkpKYarioiIiOg5OgUWIQSqVatW6DJLS0sAebfjJyIiIioPOl/WrFarcefOnVIvd3Fx0a8yIiIiov+jc2BZunQpli5dWugyhUJR6HKFQoFnz56VrUIiIiJ65ekUWFxcXKTnBRERERFVNJ0CS2xsbDmXQURERFQ0vR9+SERERFRRGFiIiIhI9hhYiIiISPYYWIiIiEj2GFiIiIhI9hhYiIiISPYYWIiIiEj2GFiIiIhI9hhYiIiISPYYWAoRExNT2SUQERHRc2QXWHJzc9G/f38EBgZqtR84cAANGjSAUqnE+++/j8zMTJ37/Pvvv9GhQwdUq1YNHTt21Hqq9KRJk6BSqbB161YAQFJSErZs2WKQYyEiIiLDkFVgyczMxMiRI7Fjxw6t9itXrqBPnz4YMmQILl26hOTkZAQEBOjcZ9euXWFjY4PIyEh06dIF/fr1Q25uLjIyMrBmzRqsWbMGixYtAgCsWbMGo0ePNvixERERkf5kFVjGjx+PKlWqoHXr1lrtP/74I5o2bYoZM2bAw8MDS5YswapVq3Q6y7J9+3bEx8dj1apVeO211zBt2jRkZGTgzJkzSE5Oho2NDZo0aYLExERkZmYiNTUVNWrUKK9DJCIiIj3o9LTmihIQEIA6deqgffv2Wu3h4eHo2bOn9NrR0RH29vaIiopC8+bNi+0zPDwcLVq0gJ2dndTm6+uL0NBQNGrUCBqNBgkJCVAqldi0aRP8/f1LrDMrKwtZWVnSa41GAwDIzs5Gdna2LodKpWBmLCpkP3L/3nEc8nAciAp6kX8udO1TVoGlTp06hbar1eoCy1QqFe7du1diYCluW6VSiY4dO6Jt27ZYuHAhrl27hrFjx5ZY59y5cxEUFFSg/fDhw7CwsChxeyqdeT4Vs5/9+/dXzI70xHHIw3EgKuhF/rl4/PixTuvJKrAUxcTEBObm5lptFhYWSE9P12lbY2PjAtvGx8cDAHbs2IHU1FScOnUKdevWRY8ePRAXF4dt27ahbt26hfY5bdo0TJ48WXqt0Wjg7OwMPz8/WFtbl/bwqAQNAw9VyH6iArtWyH70xXHIw3EgKuhF/rnI/5SiJC9EYLG3t5cCRj61Wg0zMzOdtr169Wqx29rY2OD48ePw8/ODWq1Gp06dsHr1agQHBxfap5mZWaH7NjU1hampqS6HRKWQlaOokP3I/XvHccjDcSAq6EX+udC1T1lNui2Kr68vQkJCpNfp6em4du0aXFxcdNr27NmzyMnJkdrCwsK0tj1//jxatmyJxMREeHh4oGHDhkhMTDTsQRAREZHeXojAMmTIEOzatQunTp0CAAQFBcHBwUGav5KZmYm0tLRCt/Xz80N2djbmz58PANi7dy/Onz+PXr16Sets3boVAwYMgEqlQlxcHG7dugVbW9tyPioiIiLS1QsRWLy9vREYGIhOnTqhZs2aWL58OVavXg0jo7zyg4OD8dZbbxW6rampKTZv3ozvv/8eNWrUQJ8+fTBr1izUr18fAKSzKiYmJujQoQOysrKwceNGjBgxosKOj4iIiIqnEEJUzLVQBhATE4PIyEj4+PjA0dGxVNsmJycjJCQEr732Gry8vAxal0ajgVKphFqt5qTbcuA2dV+F7Cc2uEeF7EdfHIc8HAeigl7knwtd/4a+EJNu87m7u8Pd3V2vbW1tbdG7d28DV0REREQV4YX4SIiIiIhebQwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCxEREQkewwsREREJHsMLERERCR7DCz/kpycDLVaXdllEBER0XNemMCyZMkSKBQKra8ffvhBp23nzZuHWrVqoWbNmlrbREdHw83NDe3a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",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Age Range(Estimate)', fontdict={'size': 16})\n",
    "plt.yticks(size=11)\n",
    "plt.xticks(size=11)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3447d365b8f775e7",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## Education level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "1806fc501e18ff5a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:50.282833500Z",
     "start_time": "2024-02-29T05:50:50.241674700Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "education\n",
       "-1    110369\n",
       " 1      8160\n",
       " 2     74168\n",
       " 3    217908\n",
       " 4     46693\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = users['education'].value_counts(dropna=False)\n",
    "counts.sort_index(inplace=True)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "369bf48c429e55c4",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:50.940222900Z",
     "start_time": "2024-02-29T05:50:50.910865300Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "dcb1b0572fd1d49d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:51:19.205471600Z",
     "start_time": "2024-02-29T05:51:19.172886400Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "categories[0] = '0'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "60b85b932a8b7123",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:51:44.466624400Z",
     "start_time": "2024-02-29T05:51:44.303779100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAAIXCAYAAABuJJSbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSZElEQVR4nO3de3zO9eP/8ee1g8uYzZwa2xyGSTnNuSSHnH0cYpjDED6TQqg+qGST4lOSJD5K5RAyipCInFI5LqcQYnOIkdMwZrb37w9f16+1Tdu1N9d18bjfbrvdXK/3+3pfz/f23uy59/v9uiyGYRgCAAAAAJjCzdEBAAAAAOB+QskCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAEzkVCVr3bp1slgsGT5u3rxpWx4aGiofHx+FhYXpwoULtufOnz9fhQsX1osvvmgb++mnn7R79+57vh8AAAAAHlxOVbJ27NihmjVratu2bek+PDw89Ouvv6p169YKCQnRokWLdP36dXXv3t323NGjR+vtt9/WzJkzderUKUm3ilfFihUdtTsAAAAAHkAejg7wV7Gxsapdu7Zq1qyZYdmbb76psmXLav78+XJzc1OdOnUUGBiobdu2qVatWoqLi1PPnj31ySefKC4uTsnJyQoICJCnp6cD9gQAAADAg8opz2Rl5vvvv1d4eLjc3G5F9vX1VaNGjbRmzRpJUlpamtzc3OTm5qa0tDTNmDFDffv2vWfZAQAAAEByojNZly9f1qFDhzRt2jQNGTJEbm5uat26tSZMmKAiRYrozJkzqlKlSrrnBAcH69ChQ5Kk4sWLa8+ePYqPj5ePj4+SkpJUtGjRHGVIS0vTH3/8oQIFCshisZi2bwAAAABci2EYunz5skqUKGE70ZNdTlOytm/fLsMwVK1aNY0dO1anTp3SyJEj1alTJ61YsUKSVLBgwXTP8fb21u+//y5JioyMVGhoqJo1a6ZNmzapV69e//iaycnJSk5Otj0+efKkHnnkEfN2CgAAAIBLO378uAIDA3P0HKcpWTVq1FBsbKxCQ0NtY4GBgWrSpImOHDkiSXJ3d0/3HIvFomvXrkmSRo0apd69e6t48eIaOHCgQkJC5O/vr/r162vBggWZts9x48YpOjo6w/iMGTOUL18+M3cPAAAAgAtJSkpSv379VKBAgRw/12IYhnEXMpni+vXr8vLy0uzZszVo0CB99NFH6ty5s235c889p5MnT+rrr7+2ja1atUpXr17V1KlT1apVK82YMUMzZszQ448/nmH7fz+TlZiYqKCgIP3555/y8fG5uzsHAAAAwGklJiaqSJEiunTpUo67gdOcyTp69KgSExNVtWpV29i5c+ck3SpbVatW1aZNm9KVrB07dqh69erptvP111/rgw8+0PDhw9W2bVvt2LFDcXFxmZYsq9Uqq9WaYdzT05NZCQEAAIAHWG76gNPMLjh9+nT1798/3disWbMkSXXr1lVYWJjmzp2rEydOSJI2b96srVu3qkmTJrb1Dx48qLJly9ouK3Tik3QAAAAA7lNOU7L69OmjPXv2KDw8XJ999pleeOEFjRo1Sp06dVLlypXVr18/lShRQnXr1lXv3r3VvHlz1ahRQ+3atbNt45NPPrFN216qVCktXrxYsbGxKl26tIP2CgAAAMCDxmlKVkhIiJYvX66DBw9qwIABWrFihUaPHq25c+dKkry8vPTDDz+offv22rVrl7p27arvvvtOHh63rnhMSUmRl5eXbQbCESNGaOLEiapUqZLq1q3rqN0CAAAA8IBx6okv7rXExET5+vradXMbAAAAgPtHbrqB05zJAgAAAID7ASULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAEzk4egAAADANZQe8Y2jIzituPGtHR0BgBPhTBYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIkoWAAAAAJiIkgUAAAAAJqJkAQAAAICJKFkAAAAAYCJKFgAAAACYiJIFAAAAACaiZAEAAACAiShZAAAAAGAiShYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIkoWAAAAAJiIkgUAAAAAJqJkAQAAAICJKFkAAAAAYCJKFgAAAACYiJIFAAAAACaiZAEAAACAiShZAAAAAGAiShYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIkoWAAAAAJiIkgUAAAAAJqJkAQAAAICJKFkAAAAAYCJKFgAAAACYiJIFAAAAACaiZAEAAACAiShZAAAAAGAiShYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIkoWAAAAAJiIkgUAAAAAJqJkAQAAAICJKFkAAAAAYCJKFgAAAACYiJIFAAAAACaiZAEAAACAiShZAAAAAGAiShYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIkoWAAAAAJiIkgUAAAAAJqJkAQAAAICJKFkAAAAAYCJKFgAAAACYiJIFAAAAACaiZAEAAACAiShZAAAAAGAiShYAAAAAmIiSBQAAAAAmomQBAAAAgIkoWQAAAABgIqctWTdv3lTNmjUVFRVlG1u3bp1CQ0Pl4+OjsLAwXbhwwbZs/vz5Kly4sF588UXb2E8//aTdu3ffy9gAAAAAHnBOW7Leeecd7dixw/b4119/VevWrRUSEqJFixbp+vXr6t69u2356NGj9fbbb2vmzJk6deqUpFvFq2LFivc8OwAAAIAHl4ejA2Rm//79io6Olo+Pj23szTffVNmyZTV//ny5ubmpTp06CgwM1LZt21SrVi3FxcWpZ8+e+uSTTxQXF6fk5GQFBATI09PTgXsCAAAA4EHjdGey0tLS1KdPH3Xq1EmhoaG28e+//17h4eFyc7sV2dfXV40aNdKaNWtsz3Nzc5Obm5vS0tI0Y8YM9e3b1yH7AAAAAODB5XQla9KkSTp27JgmT55sG7t586bOnDmjKlWqpFs3ODhYhw4dkiQVL15ce/bsUXx8vHx8fJSUlKSiRYve0+wAAAAA4FSXCx4+fFijRo1STEyM/Pz8bOPXrl2TJBUsWDDd+t7e3vr9998lSZGRkQoNDVWzZs20adMm9erV6x9fLzk5WcnJybbHiYmJkqSUlBSlpKTkdncAALivWN0NR0dwWvzeANx/cvN97TQlyzAM9e3bV126dFHr1q3TLbNarZIkd3f3dOMWi8VWwEaNGqXevXurePHiGjhwoEJCQuTv76/69etrwYIFtssM/2rcuHGKjo7OMP7dd98pX758Zu0aAAD3hbdrOzqB81qxYoWjIwAwWVJSkt3PdZqS9eGHH+rIkSNaunRphmV58uSRr6+vTpw4kW783Llzyp8/v+1xUFCQVq1apWbNmmncuHH6z3/+oxkzZmjz5s16/PHHM2x35MiRGjZsmO1xYmKigoKC1KxZs3STbgAAAKlS1CpHR3Bae6OaOzoCAJPdvsrNHk5TshYtWqQTJ05kuCRww4YNio6O1pNPPqlNmzapc+fOtmU7duxQ9erV063/9ddf64MPPtDw4cPVtm1b7dixQ3FxcZmWLKvVajtL9leenp7MSggAwN8kp1ocHcFp8XsDcP/Jzfe100x8MWPGDP3yyy/pPmrUqKH+/fvrl19+UVhYmObOnWs7m7V582Zt3bpVTZo0sW3j4MGDKlu2rO2yQsPg2nEAAAAA95bTnMkqV65chjFvb2/5+/urWrVqqlChgj766CPVrVtXTZo00eLFi1WjRg21a9fOtv4nn3yikSNHSpJKlSqlxYsXKzY2Vs8///w92w8AAAAADzanOZP1T7y8vPTDDz+offv22rVrl7p27arvvvtOHh63emJKSoq8vLxslxuOGDFCEydOVKVKlVS3bl0HJgcAAADwILEYXFNnk5iYKF9fX126dImJLwAA+JvSI75xdASnFTe+9T+vBMCl5KYbuMyZLAAAAABwBZQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATmV6yUlNTdf78ebM3CwAAAAAuIVcla9myZXrhhRdsj6dNmyYfHx8VLVpUzZo105UrV3IdEAAAAABcid0la/HixWrXrp2WLVsmSTpw4IAGDhyovHnzqkyZMvr+++81YcIE04ICAAAAgCuwu2S98847Klu2rH766SdJ0pdffqk8efLol19+0f79+1WlShUtWLDAtKAAAAAA4ArsLln79+9XmzZt5O/vL0natm2b6tWrp5IlS8rT01NPPfWUjh8/blpQAAAAAHAFdpcsi8Wi1NRU2+PY2FhVq1bN9jglJUX58+fPVTgAAAAAcDV2l6yQkBAtXbpUp06d0pdffqmTJ0+qRo0akm7NMLhu3TqVK1fOtKAAAAAA4ArsLlmDBg1SfHy8AgMD1blzZxUsWFD/+te/9Pvvv6tWrVr69ddf1bdv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8+eXJKWlpZmXCgAAAABcVLancL906ZKOHTuW4+UlS5a0LxkAAAAAuKBsl6wpU6ZoypQpmS6zWCyZLrdYLLp582buEgIAAACAC8lWySpZsqQsFsvdzgIAAAAALi9bJSsuLu4uxwAAAACA+0O2Jr4AAAAAAGQPJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADCRU5as7777TmXLls0wHhMTo5CQEPn5+SkyMlLXr1+3LZswYYL8/Pz03nvv2caWLFmihISEe5IZAAAAACQnLFn79u1Tt27dlJqamm58zZo16tq1q5o1a6YvvvhCu3fv1tChQyVJN2/eVFRUlKZPn67Ro0fbnrty5Uo99NBD93wfAAAAADy4nKpkbd26VU888YSCg4MzLHv99dfVvHlzTZkyRc2bN9fnn3+uGTNmKCEhQWfOnJGvr686d+4sb29vnTlzRj/88IPq16/vgL0AAAAA8CBzqpK1ceNGvfvuu3ruuefSjV+5ckVbtmxR9+7dbWPlypVTxYoVtXbtWqWlpcnN7dauuLm5KS0tTTExMercufM9zQ8AAAAAHo4O8FfDhg2Tm5ubZs6cmW789OnTSktLU5UqVdKNBwcH69ChQ+rQoYPOnz+vo0eP6uLFi0pKSlLx4sXl6el5D9MDAADgr0qP+MbREZxW3PjWjo6Au8ipStbts1F/d+3aNUlSwYIF0417e3vr7NmzslqtCg8PV3BwsCIjIzVnzhwNHDjwH18vOTlZycnJtseJiYmSpJSUFKWkpNi5F7ljdTcc8rquwFFfE+B+xM+arPGzJmscN1njuMkcx0zWOGacX26+RhbDMJzu6J85c6aioqIUFxcnSTp48KAqVKigkydPqkSJErb1IiIiZLVaNWPGDElSfHy8ihQpotdee001a9bUoEGD1LNnT02aNCnT14mKilJ0dHSG8Xnz5ilfvnym7xcAAAAA15CUlKRu3brp0qVL8vHxydFznepMVlaKFSsmSTpx4kS6knXu3DmVL1/e9rhUqVKaPn26IiIi1LlzZ02ePFlDhw7Vyy+/rICAgAzbHTlypIYNG2Z7nJiYqKCgIDVr1izHn0izVIpa5ZDXdQV7o5o7OgJw3+BnTdb4WZM1jpuscdxkjmMmaxwzzu/2VW72cImSVbBgQZUsWVKbNm1S7dq1JUmGYSg2NlYNGjRIt25sbKz69++v+Ph4hYeHa9q0aYqPj8+0ZFmtVlmt1gzjnp6eDrufKznV4pDXdQXcYweYh581WeNnTdY4brLGcZM5jpmsccw4v9x8jZxqdsE7CQsL09SpU22NcsGCBUpISFCTJk1s66xevVpNmza1PXbCKyEBAAAA3OdcpmQNHz5cSUlJqlWrliIiItSrVy+1bdtWNWrUsK2zePFiPf3005JuXTo4d+5c/fbbbypVqpSjYgMAAAB4wLhMySpWrJi2b9+uOnXqaO/evRo6dKi++OIL2/KzZ88qJCRE7u7ukm5NajFs2DD16NEj00sFAQAAAOBucMp7snr37q3evXtnGC9RooRmz56d6XOKFi2qIUOG2B736NFDPXr0uEsJAQAAACBzLnMmCwAAAABcASULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABMRMkCAAAAABNRsgAAAADARJQsAAAAADARJQsAAAAATETJAgAAAAATUbIA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M7tH7vaMlX9/K4a//xHhbsjsmE9JSdHgwYOVkJCQ5fP+KXOhQoXUsmVLHTx4MMNlpO+++64GDRqkzZs3pxtPTk7WmDFjFBERoUKFCtm9TwAci3uyADjc66+/ruXLl+vdd99VbGysqlatql27dmndunXy9vbW66+/bls3LCxM0dHRGjlypDZt2qQKFSrowoULtvey6dKli23d2rVr65VXXtFbb72lhx9+WG3atJHVatWXX36pixcvavLkySpYsOA928/Mpr6Wbk3M8eKLL8pqterdd99Vr1691LhxYz399NPKmzevFi5cqPz582f4i3pYWJhiYmLUr18/vfPOO7p69apeeeUVVa9ePcN9Hm+88YZ++OEHffTRR9q+fbuefPJJHT16VMuWLVPhwoX19ttv29Zt0aKFbar0Tp066ezZs1q2bJntMsa/Fta/6t27t9atW6eGDRuqUaNGSkxM1MqVK7Vz584cf56tVqvmzZunli1bqlmzZnr66adtU7ifPHlSQ4cONeUSOTN16tRJ3bp107x58/TII4+oRYsWSklJ0cKFCyVJH374YYYzH4GBgWrYsKHt/Zb+fqng7XUmT56sAQMG6NFHH9XTTz+tggULavny5fr999/14osvZnrZqz3KlSunQYMGaciQIWratKltAou/+qfjWJIGDBigRYsWqVmzZmrTpo2KFy+uI0eOaPHixcqbN6/atm2b4fklS5ZU48aNNXfuXBmGoRIlSujIkSPy8PDQ/PnzTdm/rDRu3Fienp7673//qz/++EMeHh5asWKFTp8+rXz58unSpUuZPq9Lly4aN26cevbsqc6dOystLU0//fST7eyvdOvrXq9ePfXq1Utz5sxRlSpVtG/fPq1cuVLly5fXyy+/nG6bY8aM0R9//JHhjyUAXMxdnLkQALJt9+7dRocOHYwiRYoY7u7uRpEiRYwOHToYe/bsybDuiRMnjCFDhhgVKlQw8ufPb/j5+Rn169c3Fi1alOm2Y2JijMcff9zIly+f4efnZzRu3NhYs2ZNhvVyOoV0dukOU19LyjCN+bJly4zatWsbVqvVKFKkiPH8888bU6dOzTCFu2EYxsSJE42yZcsaVqvVKFu2rDF27FgjJSUlwxTuhmEYV69eNV577TUjODjY8PT0NB566CGjV69eRlxcXIbM7733nlGhQgXDarUaJUqUMPr3728cOXLEyJ8/v+Hr62skJCRkuq8fffSR8eijjxpWq9UoUKCA0bBhw0yn6zaM7E35vn//fqNTp05GoUKFjLx58xo1a9Y0Pv/882xv6+jRo4Yko1evXnd8nezIzvGRlpZmTJs2zQgNDTXy5s1rFCtWzGjTpo2xffv2LJ8zc+ZMQ5IREBCQbnr9v1uzZo3RtGlTw8fHx/Dx8TEee+wxIyYm5o6ZczKF+21JSUlGlSpVjNDQ0HRTxuf0ON62bZvRuXNno1SpUobVajX8/f2Njh07Gjt27Mjytc+ePWv069fPKFGihOHu7m6UKFHCGDduXKbrZmcK978u+/v3xN8/N99++61Rt25dI3/+/EbBggVtX7fGjRsbkrJ8S4eNGzcaTzzxhOHt7W1YrVajatWqGfbx1KlTxoABA4zAwEDDarUa5cuXN4YPH57u82sYhvHZZ58Zbm5uxrx587L8HAFwDRbDuAdTLgEAAJcRHx+vxx9/XJUqVdKqVascHeeB8MMPP6hhw4Z65ZVX9MYbbzg6DoBcomQBAIAMDh48qEuXLqlWrVqOjvJASE1N1cKFCzN9SwUAroeSBQAAAAAmYnZBAAAAADARJQsAAAAATETJAgAAAAATUbIAAAAAwESULAAAAAAwESULAAAAAExEyQIAAAAAE1GyAAAAAMBElCwAAAAAMBElCwAAAABM9P8At7UCWYlPLzAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.5)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Education level(Estimate)', fontdict={'size': 16})\n",
    "plt.yticks(size=12)\n",
    "plt.xticks([0, 1, 2, 3, 4, 5], ['-1', '1', '2', '3', '4', '5'], size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cab121acc6bc2e50",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## Marital status"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "8fef059acbf8fc10",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:22:36.431166100Z",
     "start_time": "2024-02-28T12:22:36.412874100Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts = users['marital_status'].value_counts(dropna=False)\n",
    "counts.sort_index(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "51d3538ac0c494a8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:22:36.866128200Z",
     "start_time": "2024-02-28T12:22:36.836959100Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "718d6cea0d38f555",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-28T12:23:00.089766200Z",
     "start_time": "2024-02-28T12:23:00.019766600Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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RUdHy8np/7JkzZo17X6P4cOHa/ny5Xr33XdltVo1ePBgValSRc2bN1dkZKSsVqu6du2q2bNn64MPPlB8fLwMwyiI0wUAAAAASYUolP3444+Ki4vT3r17VaVKFUmSm5ubnnrqKV28eFGxsbGqUaOGQkJCHOr/wIED+uKLL7RkyRL17t1bknTkyBG99tprWrFihRISEtSyZUu1atVKM2fOlCQtWrRIkydPzp8TBAAAAIAsFNhzynKrWbNm2r59uy2QSZKPj4+kW6s6xsTEqEmTJg73v27dOrm5ualHjx62ttDQUK1fv17p6emyWq1ycnKSk5OTrFarLly4IDc3N7m7uzt+UgAAAACQg0IzU+bp6SlPT88MbatWrVKNGjXk4+Oj2NhYXb16VZUqVVJSUpKaNWumadOmqWnTpnb1f+rUKdWqVUsuLi62tsDAQKWkpOjUqVPy8/NTVFSU/Pz85OfnpwULFmjo0KE59puamqrU1FTb6+TkZElSWlqa0tLS7KqtILk6c/klcqcwfG9RtDDOILcYZwCUFPaOdxajkN40dfjwYdWpU0ezZ8/W4MGD5eHhoRYtWujZZ59VqVKlNGXKFO3bt09HjhzRXXfdlWN/zz//vOLi4rR27Vpb282bN+Xi4qIdO3aocuXKuv/++5WYmKjIyEhFRkZqzpw5OfY7ceJETZo0KVP7l19+ySqUAAAAQAl27do19evXT5cuXZKHh0e2+xXKUGa1WtW6dWslJSUpJiZGFotFcXFxql+/vkqXLi1JSkpKUpUqVfTGG2/omWeeybHPF198UTt27FBUVJStLT09XaVKldLPP/+sli1b6urVq7p27ZrWrl2rChUqaN68edq8ebO++uortWnTJst+s5op8/f314ULF/7yg/+7BE/8wewSUMTsntjR7BJQxDDOILcYZwCUFMnJyapQoUKOoazQXL54p7feekvbt29XdHS07XLDP99P5uXlpTp16iguLs6uPn19fXXy5MkMbYmJiZJku2/M3d1d7u7uWr9+vR5//HHt379fY8aM0dSpU7MNZa6urnJ1dc3U7uLikuFSSbOkplvMLgFFTGH43qJoYZxBbjHOACgp7B3vCs1CH7etW7dOEyZM0MyZM9WgQQNJ0sWLF7Vx48ZM+yYmJur69et29dugQQMdOnRI58+ft7XFxMRIkipVqmRr2759u0JCQnT8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Li5asWKFfH19NXr0aL3zzjvq0aOHNm/erPLly0uSTp8+raZNm2rDhg3Z9jNgwAAtX75cly9fliR9++23GZ5b9u2332rYsGGSpBYtWqhOnTqaNWuWxo8fn2/nAgAAAAB3cnhJfGQtOTlZnp6eOS57+XepOi73jyRAyZbwZhezS0ARwziD3GKcQW4xziC3Css4Y282yNNMGQAAAAAgbwhlAAAAAGAih0NZlSpV1KlTp/ysBQAAAABKHIdDWYUKFXTu3Ln8rAUAAAAAShyHQ1nfvn0VHx+vw4cP52c9AAAAAFCiOBzKnnvuOTVs2FCPPfaYEhMT87MmAAAAACgxHH549LZt2/Tqq69q9OjRqlOnjl566SU1bNgw034PP/xwXuoDAAAAgGLN4VDWunVrWSwW3X7M2ahRo7LcLz093dG3AAAAAIBiz+FQ9sorr8hiseRnLQAAAABQ4jgcyiZOnJiPZQAAAABAycTDowEAAADARIQyAAAAADBRnkLZ+fPnNXbsWDVt2lT33nuvJOmDDz7Qgw8+qB07duRLgQAAAABQnDl8T9nx48fVokULnTlzRpJsi35YLBZt3bpV7dq1U2xsrKpXr54/lQIAAABAMeTwTNmLL76o8+fP6+2339bTTz9ta3/yySe1YsUKpaWladKkSflSJAAAAAAUVw6Hsh9++EGhoaF69tln5eXllWFb586d1atXL23YsCGP5QEAAABA8eZwKLty5YqqVauW7XYvLy9duHDB0e4BAAAAoERwOJQFBQVlu5iH1WrV+vXrFRgY6HBhAAAAAFASOBzKHn/8cW3cuFEvvfSSLl++bGs/d+6cRowYoT179mjAgAH5UiQAAAAAFFcOr774/PPP68cff9TUqVNtKy/6+PgoKSlJhmGodevWev755/OtUAAAAAAojhyeKStVqpRWr16tadOmqX79+ipTpoxSUlJUv359TZs2TT/88INKlXI48wEAAABAiZCn1FSqVCm98MILeuGFF/KrHgAAAAAoUXIdys6cOaPjx4/Lzc1NtWrVUunSpQuiLgAAAAAoEey+fDEmJkbNmjVT5cqV9cADD6hRo0a66667NGbMGN24caMgawQAAACAYsuumbI9e/aoTZs2unLliipXrqwqVaro+vXr2rt3r2bNmqUTJ05oyZIlBV0rAAAAABQ7ds2UTZw4UVevXtWXX36p48eP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GeRWYRln7K2jyCz0cfToUe3atStDW2JioiTp+vXrOR7foEEDbdq0KUNbTExMphmwjz/+WEOHDtWxY8fUunVrtWrVSgkJCXkrHgAAAACyUWRC2Ycffqgnn3wyQ9uiRYskSc2bN8/x+PDwcP3666+260svXbqkRYsWqX379rZ90tPTdeTIEd13332SJMPgplIAAAAABavIXL44ZMgQvffee+rbt686duyouLg4zZkzR7169VK9evWUmJioo0ePqlGjRpnuHZOkevXqaejQoerVq5d69Oih6OhoXbt2TWPGjLHtExERodDQUElSQECA1q9fL0kKDg7+W84RAAAAQMlTZGbKatSooe+//14HDx7UiBEjtHLlSr366qtavHixJGn58uVq2rSpLl++nG0f8+fP12uvvaYDBw6odu3a2rp1q6pUqWLbvnPnTv3jH/+QJA0aNEi7d+/Wnj17NGjQoAI9NwAAAAAll8XgGr18lZycLE9PT126dKlQrL5YddwKs0tAEZPwZhezS0ARwziD3GKcQW4xziC3Css4Y282KDIzZQAAAABQHBHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATEQoAwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATEQoAwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATEQoAwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADAREUqlFmtVk2YMEEVK1bUvffeq9mzZ+fq+F27dqlly5YqX7682rdvrxMnTti2rV+/XhUrVlTfvn1ltVolSUePHtUPP/yQr+cAAAAAAHcqUqFs4sSJmj59ul566SW99957eu211/T111/bdez58+fVvn17ubq66ptvvpG/v7+6dOmimzdvSpKmTp2q5557Tjt37tT27dslSQsWLFCTJk0K7HwA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AwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAADku5MnT+qVV14R64n9PQzD0CuvvKKTJ0+aXQoAB7D6IgAAyFeXLl1S8+bN5ezsrC1btsjDw8Pskoq95ORkPfDAA7Jardq6das8PT3NLglALjBTBqDIs1gsslgsud5WFEycONF2Dt9//32GbRUqVJDFYlHVqlX/1po2bNggi8WiiRMn/q3v+2eDBg2SxWJRQkJCvvR34cIFjRgxQn5+fipdurSqVaum//znP0pJScmX/kuSAQMGKDU1VVFRUbZA1rp1a9t3Oauf0NDQv71Oi8Wi1q1b/+3vWxA8PDwUFRWllJQUDRw40OxyAORSKbMLAADYJy4uTo8++qgk6cSJE0pMTDS5ouLj999/V/PmzXX06FF169ZNAQEB+uGHHzR9+nQlJCRo6dKlZpdYZHz22WdauXKloqOjValSpUzbH3/8cQUEBGRqr1Onzt9RXrFWqVIlffPNN2rWrJkWL16s/v37m10SADsRygCgiNi5c6ftz3FxcabVERISon379qlChQo57muxWNSqVStt2LCh4AvLgzfeeENHjhzRW2+9pf/85z+SpGvXrqlp06b673//q+joaDVr1izDMQsXLtTgwYP16aefatCgQflaT1H53P7sxo0bGj9+vEaPHq3GjRtnuc/QoUMLbHYqt5/bvn37VLZs2QKpxR4F8R1q3LixRo0apfHjx6t3795ycXHJl34BFCwuXwSAIuLOUHbnn/9uZcuWVa1atewKZUXFunXrJEldunSxtZUtW1b9+vWTJG3cuNGUuoqaiIgI/f777xo7dqzZpdilVq1aqlKlitll5Ltx48bp7Nmz+u6778wuBYCdCGUAUAS0a9dOR48eVVJSkqRbM2VBQUFZXgaG3HN1dZWUOeyOGTNGFy9e1MiRI80oq8hZvny5OnXqJB8fH7NLKdF8fHzUsWNHQhlQhBDKAJQ4f/zxh1544QXdd999cnNzU+XKldW/f38dOXIky/3/97//6aGHHlK5cuXk7u6utm3b6ueff860358XwFi6dKnatm2rChUqaNeuXXmquWHDhpL+77LFuLg4W9ufHT16VIMHD1ZAQIDKli2rGjVqaMyYMUpOTs60752LZVy6dEkvv/yy6tSpowceeCDbWnJa6OPOxRukW7NMd7ZldWlZZGSkHn74Yfn4+Mjb21vNmjXTN998k20N+a1bt26SpKefflpz587VjRs3JEmlS5eWl5eXypQpI+nW5Wa3z2Pw4MGSpMGDB9vaslp05cqVK5o4caJq1aqlsmXLyt/fX3369NHhw4cz7Jebz+2v/g5uLw7z58959erVat26te6++26VL19ejRo10vz58x35uLK1Y8cOtWrVKl/6svf31JHv253HZncp5e1t8+fPV+XKleXj46MvvvhC3333nQIDA+Xp6akXX3wxwzHx8fEKDw/XvffeK3d3d9WpU0dTp05VamqqbR9HvkNpaWl66623FBwcrDJlyqhChQrq37+/jh07lu25tWrVSjExMdluB1C4cE8ZgBIlPT1dHTt21I4dO9S+fXuFhobq7Nmz+u9//6vNmzcrPj4+w/Ldr7zyil577TXdd999GjZsmK5cuaJvvvlGbdu21apVq9S+ffss3+ef//ynFixYoGrVqikoKCjP9600atRI0q0w1qhRIx09elTDhg3TL7/8kmG/EydO6IEHHtCFCxfUo0cPValSRbt379aMGTN04MABRUZGZtn/8ePH1bZtWx0/flwNGzZUUFCQw7W+9NJLtj+/8cYbqlKligYMGGBr+/Ps3kcffaThw4erUqVKeuyxx2SxWLRy5Ur16tVL33zzjcLCwhyuxV5jx47V1q1btWrVKj399NOaPHmynnvuOT3zzDNyd3e37degQQPb+cXHx2v58uXq2rWr6tevL0ny9vbO0O/Nmzf16KOPauPGjXr44Yf16KOP6ty5c1q6dKm2bNmiX3/9VV5eXpJy/7nlxnfffacePXrIx8dHYWFhcnd3148//qgnn3xSKSkpevbZZx3u+04nT57Uvffe+5f7fPzxx1qzZk2m9n//+9+qWLGipNz9nhbk5xYTE6OEhAR17dpVH330kf71r3/JyclJ/fr1U0REhKZOnaphw4YpMDBQO3fu1MMPP6z09HT16tVLFSpUUHR0tF588UWdPn1a7733nqTcf4fS0tLUuXNnrV27Vg8//LA6deqko0eP6uuvv9a6deu0c+dO2+d2p3vvvVcnTpxw+NwB/M0MACjiJBnZDWd/3hYXF2dIMtq1a5dhv3fffdcICAgwNmzYYGvbvn27Icl4+OGHjdTUVFt7bGysIclo0qRJhj7Wr19vSDICAwMNHx8fY/Xq1Xk+t1dffdWQZKxfv964++67jSee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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.5)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Marital Status (Estimate)', fontdict={'size': 16})\n",
    "plt.yticks(size=12)\n",
    "plt.xticks(size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a249ef0a247401c6",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## Purchase power"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "f7a27b2c6be66f9b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:40.648248800Z",
     "start_time": "2024-02-29T05:50:40.619872100Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts = users['purchase_power'].value_counts(dropna=False)\n",
    "counts.sort_index(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "28f6b9280b224735",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:41.033212300Z",
     "start_time": "2024-02-29T05:50:41.011206100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1,  1,  2,  3,  4,  5], dtype=int64)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index.values\n",
    "categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "adc0c9057c45565",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:41.509609400Z",
     "start_time": "2024-02-29T05:50:41.475458400Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "categories[0] = '0'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "b41a01c7002c4de1",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:50:41.997009500Z",
     "start_time": "2024-02-29T05:50:41.926482700Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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avXt21ddu3bVxIkTU32dYcOGaeDAgdbHUVFR8vHxUUBAAPdUAXC4iqErHR3BofaHNnV0BABAJpZ0FVta2Fyqqlevrp9//llhYWEqXLhwsmUXLlzQwoULVaNGDZu2/dJLL+mll15SrVq1NHDgQAUHB0uSzp07pyJFiljXu3btmsqWLWt97Ovrq2nTpqlLly5q3769Jk2apAEDBmjw4MEqWrRoitdxc3OTm5tbinFXV9dHXjoIAE9abILF0REcip/DAABHepx/h2yeqGLYsGH666+/VKtWLX3xxRfaunWrtm3bpi+++EJ16tTR9evXNWzYsDRvLy4uTqdPn042FhgYKMMwdOTIERUvXlybN2+2LjMMQxEREclKliRFRESoWrVqOn36tIKDg+Xn55diuwAAAABgLzaXqmbNmmnChAm6ePGi3njjDdWvX1/16tXTG2+8oQsXLmjChAkKCAhI8/a2bNmicuXK6ezZs9axY8eOSZJKlCihoKAgTZkyxXoabt68ebp8+bKaNGliXX/16tV64YUXrI9NzBYPAAAAAGli8+V/ktS/f38FBATo66+/1qFDhyRJTz/9tLp3764KFSo81rYaNGigSpUq6cUXX9SoUaNksVg0cOBAtWjRQmXKlNGQIUP0/fffq2bNmqpVq5bmz5+vli1bqnr16tZtLFy4UJ999pmke5cCzp07V0eOHJGvr6+Z3QQAAACABzJVqqR7JWrcuHGmg7i4uGjJkiUaOHCgevTooezZs6tDhw764IMPJEkFCxbUjh07NHToUO3bt08DBgzQyJEjrc+/evWq/Pz8rJNZhIaGql+/furatWuq91MBAAAAgD1YDK6Rs3qcT00GgCetxNBfHB3BoSLHNHd0BABAJvY43cDme6oAAAAAAJQqAAAAADCFUgUAAAAAJlCqAAAAAMAEShUAAAAAmECpAgAAAAATKFUAAAAAYAKlCgAAAABMoFQBAAAAgAmUKgAAAAAwwW6l6u7du5KkmJgYe20SAAAAAJyeqVJ16NAhdejQQQUKFFDOnDklSV9//bV8fHy0dOlSuwQEAAAAAGeW1dYn7t+/X/Xq1dPt27dlsVis415eXrp48aLatm2r8PBwValSxR45AQAAAMAp2Xymavjw4UpISNDChQs1ZMgQ6/grr7yi3bt3K1euXAoLC7NLSAAAAABwVjaXqg0bNqht27YKDAxUlixZki2rWLGi2rVrp61bt5oOCAAAAADOzOZSFRcXp4IFCz5wuaurq6KiomzdPAAAAABkCDaXqvLly2vjxo2pLouNjdWKFStUvnx5m4MBAAAAQEZgc6kKCQnRjh071KVLF509e1aSdPv2bW3btk1t27ZVZGSkQkJC7BYUAAAAAJyRzbP/hYSE6Pfff9ecOXOss/95eHhIkgzD0CuvvEKpAgAAAPCvZ3OpkqTZs2erRYsWmjt3ro4ePSrDMFSuXDl16tRJQUFB9soIAAAAAE7LVKmSpKCgIAoUAAAAgEzL5nuq3n//ff3888+PXC8qKkqGYdj6MgAAAADg1GwuVePHj9eOHTseuk6fPn2UN29e+fv76/r167a+FAAAAAA4LZtLVZs2bXT8+HH95z//UdOmTfXf//5Xhw8fti7fvXu3pkyZohdffFFHjx7V5MmT7RIYAAAAAJyJzaUqODhYCxYs0IwZM7R69Wp98cUXqlGjhvbt2ydJ2rZtmywWi2bNmqUXX3xRv/zyi91CAwAAAICzsLlUffTRRypYsKB+//13RUdH6/fff1eePHk0aNAgSdLVq1clSfny5VOZMmV04sQJ+yQGAAAAACdic6navXu3goODVbduXWXPnl1169ZVhw4dFB4eLkmKjo6Wm5ubJCl79uy6ceOGXQIDAAAAgDOxuVQVLFhQx48fTzZ2/Phx6wcA37hxQwUKFJAkxcTEKHv27CZiAgAAAIBzsvlzqrp06aLQ0FC9+OKLqlq1qnbt2qWVK1fqpZde0o0bN/Tbb7/p77//1t27d3X06FEVK1bMnrkBAAAAwCnYXKreeecdXbp0SdOmTdPKlSuVJUsWDRs2TMuWLVO+fPlkGIYaNmyoRo0aaceOHerevbsdYwMAAACAc7D58r+sWbNqypQp+vPPP7V161adP39eH374oZYsWaI+ffpo9uzZ+uWXX+Tq6iofHx8NHz7cnrkBAAAAwClYDMMwHB3CWURFRcnDw0M3b96Uu7u7o+MAyORKDM3cH0UROaa5oyMAADKxx+kGNp+pAgAAAACYuKcqyaVLl3TixAklJCQkG79x44bmzZunuXPnmn0JAAAAAHBaNpeqW7duqUuXLlq6dOlD16NUAQAAAPg3s/nyvw8++EBLlixR27ZtVb16dbm4uOjdd9/VwIEDlSNHDnl5eWn27Nn2zAoAAAAATsfmM1WLFy9Ws2bNNH/+fG3dulX169dX8+bNVatWLTVt2lRNmzbV33//bc+sAAAAAOB0bD5Tde7cOVWsWFGSVKtWLWXPnl07d+6UJDVp0kQNGzbUtGnT7JMSAAAAAJyUzaWqQIECOnPmzL2NuLioQoUK2rNnj3V5tWrVdPjwYfMJAQAAAMCJ2VyqGjdurIULF2rChAmSpPr162vp0qW6deuWJGnXrl3y8PCwT0oAAAAAcFI2l6qRI0cqb968Gjx4sCSpS5cuunz5skqWLKkyZcpo/fr1atq0qd2CAgAAAIAzsrlUlShRQtu3b9fQoUMl3bvc77PPPtOdO3d08uRJ1axZU2PGjLFbUAAAAABwRhbDMAx7btAwDN28eVOenp723Gy6iIqKkoeHh27evCl3d3dHxwGQyZUY+oujIzhU5Jjmjo4AAMjEHqcb2Hym6kEsFkuGLFQAAAAAYAu7lypJSkhI0NKlS7V79+4nsXkAAAAAcBo2l6oePXpo0aJFqS7LkiWLRo0apZ49e9q6eQAAAADIEGwuVbNmzVJERMQDl9etW1eHDh2ydfMAAAAAkCE8kcv/pHtnq1xdXZ/U5gEAAADAKWR9nJXPnDmT7PHNmzdTjEnSyZMnNX/+fFWpUsVUOAAAAABwdo9VqkqUKCGLxWJ9PHnyZE2ePDnVdd3c3PTDDz+YSwcAAAAATu6xSlXXrl1lsVhkGIa++eYbVapUSVWrVk22jouLi0qUKKEOHTrIz8/PrmEBAAAAwNk8VqmaNWuW9c/ffPONWrZsqffff9/emQAAAAAgw3hiE1UAAAAAQGZgc6nq1q2bqlWrZs8sAAAAAJDhPNblf/ebOXOmPXMAAAAAQIZkc6mSpOjoaP3++++6dOmSDMNIdZ2uXbuaeQkAAAAAcGo2l6o9e/aoefPmunjxYqrLDcOQxWKhVAEAAAD4V7O5VPXr108XLlxQixYt1KxZM+XMmdOeuQAAAAAgQ7C5VO3atUtNmjTR4sWL7ZkHAAAAADIUm2f/y507typWrGjPLAAAAACQ4dh8piowMFALFy7UqFGjuPTvCSox9BdHR3CoyDHNHR0BAAAAeCibz1R9/PHH8vT0VNOmTXXkyBF7ZgIAAACADMPmM1X9+/dX2bJl9dNPP6lSpUqqWrWqypYtq2zZslnXsVgsmjFjhl2CAgAAAIAzsrlUzZo1y/rn+Ph4bd++Xdu3b0+2DqUKAAAAwL+dzaXq1KlT9swBAADuwz213FMLIOOwuVT5+vraMwcAAAAAZEg2T1SRxDAMHThwQKtWrZIkHT9+XEePHjUdDAAAAAAyAlOl6ptvvlGxYsXk7++vl156SZK0cuVKlS9fXkOGDLFLQAAAAABwZjaXqiVLlqh79+6KiopSsWLFZBiGJKlSpUoqWbKkxo0bp59//tluQQEAAADAGdlcqj766CN5e3vr8OHD6tKli3X82Wef1e7du1WqVClNmDDBLiEBAAAAwFnZXKr27t2rNm3aqGjRorJYLMmW5c6dWy+//LIOHDhgOiAAAAAAODObS5Wbm5tcXB789Bs3bjz2Ni9fvqy2bdsqT548ypEjh5o3b65Lly5Zl8+fP19+fn7y8vJSSEiI7ty5Y102btw4eXl56dNPP7WOLVq0SJcvX37sHAAAAACQVjaXqlq1amnRokWKiopKsez8+fNauHChateunebtGYahtm3bKjw8XKNGjdLo0aO1ZcsWde7cWZK0Zs0adezYUQEBAfrhhx+0d+9eDRgwQNK9Dx8ODQ3VtGnTNHLkSCUkJEiSVqxYoUKFCtm6iwAAAADwSDZ/TtXQoUPVpEkT1alTR97e3pKkZcuW6cCBA5o6dapu3779WDMArl69Wrt379bBgwdVvHhxSVKOHDnUu3dvXb9+Xe+9956aNm2qyZMnS5JKly6t8uXLKzQ0VAkJCfLw8FD79u3Vv39/XblyRcePH9czzzxj6+4BAAAAQJrYfKaqcePGmjZtmk6dOqX169fLMAwFBgZq2LBhunTpkqZMmaLGjRuneXu1a9dWeHi4tVBJUr58+SRJUVFR2rZtmzp16mRdVqZMGZUvX15r165VYmKi9VJEFxcXJSYmav78+Wrfvr2tuwcAAAAAaWLzmSpJ6tWrl1566SX9+OOPOnr0qAzDULly5RQUFKSiRYs+1rY8PDzk4eGRbGz58uXy8/NTXFycEhMT5e/vn2x5qVKldOzYMbVp00Z//fWXTp06pRs3big6OlqFCxeWq6vrQ18zNjZWsbGx1sdJlzLGxcUpLi7usfI/KW5ZDEdHcChnOQ6AI/D+z9zvf45/5j7+ABzvcX4OWYykD5hyMsePH9fTTz+tSZMmqX79+vL399eZM2fk4+NjXadz587y8vLSZ599pp49e+rrr79WSEiIChUqpD59+qhgwYIPfY3Q0FCFhYWlGP/uu++UM2dOu+8TAAAAgIwhOjpar7zyim7evCl3d/eHrmvXUmUYhvbu3auKFSsqS5YsNm8nMTFRjRo10o0bN7Rz506dOnVK5cqV0/nz51WkSBHrel26dJGbm5umT58uSTp9+rTy58+vd999VzVq1FDfvn3VtWtXTZw4MdXXSe1MlY+Pj/78889HfuPSS8XQlY6O4FD7Q5s6OgLgMLz/M/f7n+OfuY8/AMeLiopS/vz501SqTF3+t2TJEr3zzjt6//331aZNG0VHR6tq1aoqWLCgpkyZojZt2ti03Y8//ljh4eHatm2bXF1drWeczp07l6xUXbt2TWXLlrU+9vX11bRp09SlSxe1b99ekyZN0oABAzR48OBUL0d0c3OTm5tbinFXV9dHXjqYXmITLI9e6V/MWY4D4Ai8/zP3+5/jn7mPPwDHe5yfQzZPVBEeHq42bdro4MGDSjrZ5erqqkaNGunWrVvq0KGD/vjjj8fe7tq1azVixAiNHz9elStXliR5enqqePHi2rx5s3U9wzAUERGRrGRJUkREhKpVq6bTp08rODhYfn5+On36tK27CQAAAAAPZXOpCgsLU+7cufXHH3+obdu2kqRs2bJp7dq1ioiIUI4cOfThhx8+1jYPHjyooKAgtW/fXm+88UayZUFBQZoyZYp1Mol58+bp8uXLatKkiXWd1atX64UXXrA+dtLbxQAAAAD8i9hcqnbv3q22bduqTp06KZYlzQD4OGeq4uLiFBQUJFdXV/Xu3Vs7duywft26dUtDhgxRdHS0atasqS5duqhbt25q2bKlqlevbt3GwoUL1bp1a0n3LgWcO3eujhw5Il9fX1t3EwAAAAAeyuZ7qq5fv64cOXI8cHmOHDmSTQLxKPv379ehQ4ckSQ0bNky2bN26dWrUqJF27NihoUOHat++fRowYIBGjhxpXefq1avy8/OzTpARGhqqfv36qWvXro89vTsAAAAApJXNs//VqFFDV69e1cGDB5UrV65ky27duqUKFSqoUKFC2r59u12CpoeoqCh5eHikaYaP9FJi6C+OjuBQkWOaOzoC4DC8/zP3+5/jn7mPPwDHe5xuYPPlf/369dPZs2fVuHFjrVmzRpcvX9bly5e1evVqPffcczp//rz69Olj6+YBAAAAIEOw+fK/rl27asuWLZo2bZqaNk3+WRKGYahXr17q1q2b6YAAAAAA4MxMfU7V1KlT1axZM82ePVtHjhyRJD311FPq2rWrAgMD7RIQAAAAAJyZqVIlSYGBgRQoAAAAAJmWzfdUAQAAAAAoVQAAAABgis2lqnjx4mrWrJk9swAAAABAhmNzqcqfP78uX75szywAAAAAkOHYXKqCg4O1d+9eHT9+3J55AAAAACBDsblU9e/fX1WqVFHHjh117do1e2YCAAAAgAzD5inVt27dqpEjR2rgwIF6+umnNXz4cFWpUiXFes8++6yZfAAAAADg1GwuVY0aNZLFYpFhGJKkAQMGpLpeQkKCrS8BAAAAAE7P5lL13nvvyWKx2DMLAAAAAGQ4Npeq0NBQO8YAAAAAgIyJD/8FAAAAABMoVQAAAABggqlSdeXKFQ0ZMkQ1a9ZU0aJFJUlffPGF6tevrx07dtglIAAAAAA4M5vvqTpz5ozq1q2rixcvSpJ10gqLxaItW7bo+eefV0REhEqXLm2fpAAAAADghGw+U/XOO+/oypUr+vTTT/XGG29Yx1977TX98ssviouLU1hYmF1CAgAAAICzsrlUrVy5Uq1atdKbb74pT0/PZMtefPFFtWvXTuvXrzcZDwAAAACcm82l6vbt2ypZsuQDl3t6eurPP/+0dfMAAAAAkCHYXKrKlCnzwMkoEhMTtW7dOpUqVcrmYAAAAACQEdhcqjp37qwNGzZo+PDhunXrlnX88uXLev3113XgwAF16dLFLiEBAAAAwFnZPPvfoEGDtHr1ao0ePdo681++fPl048YNGYahRo0aadCgQXYLCgAAAADOyOYzVVmzZtWKFSs0duxY+fv7K3v27IqJiZG/v7/Gjh2rlStXKmtWmzsbAAAAAGQIplpP1qxZ9dZbb+mtt96yVx4AAAAAyFAeu1RdvHhRZ86cUY4cOfTUU08pW7ZsTyIXAAAAAGQIab78b+fOnapdu7aKFSumevXqqWrVqsqbN68GDx6su3fvPsmMAAAAAOC00nSm6sCBA2rcuLFu376tYsWKqXjx4rpz544OHjyoCRMm6OzZs/rhhx+edFYAAAAAcDppOlMVGhqqv//+W999953OnDmjzZs3a8eOHbpw4YIaNGigH3/8Ubt27XrSWQEAAADA6aSpVG3YsEGNGjVScHBwsnFPT0+NGTNGhmFo48aNTyQgAAAAADizNJWqa9euqXLlyqku8/f3lyRdv37dfqkAAAAAIINIU6kyDEO5c+dOdVmuXLkkSYmJifZLBQAAAAAZRJqnVL9586bOnDnz2MuLFy9uWzIAAAAAyADSXKomT56syZMnp7rMYrGkutxisSg+Pt5cQgAAAABwYmkqVcWLF5fFYnnSWQAAAAAgw0lTqYqMjHzCMQAAAAAgY0rTRBUAAAAAgNRRqgAAAADABEoVAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATKBUAQAAAIAJlCoAAAAAMIFSBQAAAAAmUKoAAAAAwARKFQAAAACYQKkCAAAAABMoVQAAAABgAqUKAAAAAEygVAEAAACACZQqAAAAADCBUgUAAAAAJlCqAAAAAMAEShUAAAAAmECpAgAAAAATKFUAAAAAYAKlCgAAAABMoFQBAAAAgAmUKgAAAAAwgVIFAAAAACZQqgAAAADABEoVAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATKBUAQAAAIAJlCoAAAAAMIFSBQAAAAAmUKoAAAAAwASnLFWrVq1S6dKlU4zPnz9ffn5+8vLyUkhIiO7cuWNdNm7cOHl5eenTTz+1ji1atEiXL19Ol8wAAAAAMienK1UHDx7UK6+8ooSEhGTja9asUceOHRUQEKAffvhBe/fu1YABAyRJ8fHxCg0N1bRp0zRy5Ejrc1esWKFChQql+z4AAAAAyDycqlSFh4erQYMGKlWqVIpl7733npo2barJkyeradOm+vbbbzV9+nRdvnxZV65ckYeHh9q3b6/cuXPrypUr2rRpk5555hkH7AUAAACAzMSpStXGjRs1fvx4/fe//002fvv2bW3btk2dOnWyjpUpU0bly5fX2rVrlZiYKBeXe7vi4uKixMREzZ8/X+3bt0/X/AAAAAAyn6yODnC/gQMHysXFRbNmzUo2funSJSUmJsrf3z/ZeKlSpXTs2DG1adNGf/31l06dOqUbN24oOjpahQsXlqur60NfLzY2VrGxsdbHUVFRkqS4uDjFxcXZZ6dMcstiODqCQznLcQAcgfd/5n7/c/wz9/EH4HiP83PIqUpV0tmmf4qJiZEkeXp6JhvPnTu3rl69Kjc3NwUHB6tUqVIKCQnRnDlz1KdPn0e+3ujRoxUWFpZifNWqVcqZM+fj78ATMLaWoxM41q+//uroCIDD8P7P3O9/jn/mPv4AHC86OjrN6zpVqXoQNzc3SVKWLFmSjVssFmvhmjFjht577z3lz59f7777rlavXq2+ffuqa9eumjhxYqrbHTZsmAYOHGh9HBUVJR8fHwUEBMjd3f3J7Mxjqhi60tERHGp/aFNHRwAchvd/5n7/c/wz9/EH4HhJV7GlRYYoVQULFpQknTt3TkWKFLGOX7t2TWXLlrU+9vX11bRp09SlSxe1b99ekyZN0oABAzR48GAVLVo0xXbd3Nyshe1+rq6uj7x0ML3EJlgcHcGhnOU4AI7A+z9zv/85/pn7+ANwvMf5OeRUE1U8iKenp4oXL67NmzdbxwzDUERERLKSJUkRERGqVq2aTp8+reDgYPn5+en06dPpHRkAAABAJpEhSpUkBQUFacqUKdbTcPPmzdPly5fVpEkT6zqrV6/WCy+8YH1sGJn7Jl8AAAAAT16GKVVDhgxRdHS0atasqS5duqhbt25q2bKlqlevbl1n4cKFat26taR7lwLOnTtXR44cka+vr6NiAwAAAPiXyzClqmDBgtqxY4dq166t/fv3a8CAAfrhhx+sy69evSo/Pz/rZBahoaEaOHCgOnfunOr9VAAAAABgDxaDa+SsoqKi5OHhoZs3bzrN7H8lhv7i6AgOFTmmuaMjAA7D+z9zv/85/pn7+ANwvMfpBhnmTBUAAAAAOCNKFQAAAACYQKkCAAAAABMoVQAAAABgAqUKAAAAAEygVAEAAACACZQqAAAAADCBUgUAAAAAJlCqAAAAAMAEShUAAAAAmECpAgAAAAATKFUAAAAAYAKlCgAAAABMoFQBAAAAgAmUKgAAAAAwgVIFAAAAACZQqgAAAADABEoVAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATKBUAQAAAIAJlCoAAAAAMIFSBQAAAAAmUKoAAAAAwARKFQAAAACYQKkCAAAAABMoVQAAAABgAqUKAAAAAEygVAEAAACACZQqAAAAADCBUgUAAAAAJlCqAAAAAMAEShUAAAAAmECpAgAAAAATKFUAAAAAYAKlCgAAAABMoFQBAAAAgAmUKgAAAAAwgVIFAAAAACZQqgAAAADABEoVAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATKBUAQAAAIAJlCoAAAAAMIFSBQAAAAAmUKoAAAAAwARKFQAAAACYQKkCAAAAABMoVQAAAABgAqUKAAAAAEygVAEAAACACZQqAAAAADCBUgUAAAAAJmR1dAAAAAAkV2LoL46O4FCRY5o7OgLwWDhTBQAAAAAmUKoAAAAAwARKFQAAAACYQKkCAAAAABOYqAJwYtyozI3KAADA+XGmCgAAAABMoFQBAAAAgAmUKgAAAAAwgVIFAAAAACZQqgAAAADABEoVAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATMhQpSoxMVEjRoyQt7e3ihYtqkmTJlnH27dvr8KFC2vDhg3W9adOneqoqAAAAAAyiayODvA4QkND9cknn+iTTz5R0aJF9dprr6lQoULy8fHRnj179Oabb2r06NFq2LChrly5oosXLzo6MgAAAIB/uQxTqqKiovTJJ5/o/fffV9++fSVJN27c0Pvvv6/hw4erRo0aatOmjWbOnClJmj59unr27OnIyAAAAAAygQxz+d/vv/+uO3fuqFOnTtaxVq1a6eDBg4qPj5eLi4tcXFyUmJiouLg4Xbx4Ub6+vg5MDAAAACAzyDBnqs6fP6+8efOqaNGi1rG8efPKw8NDp06d0vHjx3X48GEVLlxY8+fPV7t27R65zdjYWMXGxlof37x5U5L0119/KS4uzv47YYOs8X87OoJDXbt2zdERHIrjz/HPzDj+HP/MjOOfuY8/nMOtW7ckSYZhPHLdDFOqYmJi5OnpmWI8d+7cKlOmjG7duqXAwEDNnj1bGzdu1LRp0x65zdGjRyssLCzFeMmSJe0RGXaQf7yjE8CROP6ZG8c/c+P4Z24cfziTW7duycPD46HrZJhS5ebmpixZsqQYt1gsMgxDERER+vPPP3XmzBnFxcWpb9+++u677zR58mR17Ngx1W0OGzZMAwcOtD5OTEzUX3/9pXz58slisTyxfckooqKi5OPjo7Nnz8rd3d3RcZDOOP6ZG8c/c+P4Z24c/8yN4///DMPQrVu3VKRIkUeum2FKVcGCBXX+/PkU43/99Zdy5cqlbNmyqUiRIhozZoz69eunt99+WxMnTtTIkSMfWKrc3Nzk5uaWbCy1s2GZnbu7e6Z/U2VmHP/MjeOfuXH8MzeOf+bG8b/nUWeokmSYiSoqV66s6OhoRUREWMcOHTqk6Ohoa3s8f/688ufPr8uXL6tcuXIKDg5WZGSkgxIDAAAAyAwyTKkqWbKkqlWrpjFjxljH/ve//8nLy0vVq1eXJH311Vfq1auXpLTdUAYAAAAAZmWYy/8kady4cQoICFDjxo2VI0cOLV++XBMmTFDWrFl1584dXb9+XUWKFFFCQoKOHDmiuXPnqkSJEo6OnWG5ublp5MiRKS6RRObA8c/cOP6ZG8c/c+P4Z24cf9tYjAx2SmfLli0KCwvT9evXFRISYv2A3yVLlqhQoUKqXbu2JKlv376aO3euPv/88wfeUwUAAAAAZmW4UgUAAAAAziTD3FMFAAAAAM6IUgUAAAAAJlCqAAAAAMAEShXS5NatWypfvrzWr1/v6ChIJ6tWrVLp0qUdHQPp7PLly2rbtq3y5MmjHDlyqHnz5rp06ZKjYyEdrV27Vr169VJwcLCmTJmi+Ph4R0eCA8THx6tGjRoKDQ11dBSkk3Xr1slisaT44mdA2lCq8Eh3795V586ddfjwYUdHQTo5ePCgXnnlFSUkJDg6CtKRYRhq27atwsPDNWrUKI0ePVpbtmxR586dHR0N6eT7779X8+bN5eLiosKFC2vIkCF69dVXHR0LDvDJJ59o586djo6BdLRz507VqFFD27dvT/aVNWuG+gQmh+G7hIe6c+eOXn75ZUVFRTk6CtJJeHi4mjVrpjJlyujKlSuOjoN0tHr1au3evVsHDx5U8eLFJUk5cuRQ7969df36dXl5eTk4IZ6kO3fuqF+/fvr888/Vo0cPSVK1atXUvXt3ff7553J3d3dwQqSXQ4cOKSwsjGOeyURERKhWrVqqUaOGo6NkSJypwkNdunRJ+fLl02+//eboKEgnGzdu1Pjx4/Xf//7X0VGQzmrXrq3w8HBroZKkfPnySZISExMdFQvpJCYmRqNGjVK3bt2sY8WKFVNiYqLi4uIcmAzpKTExUT169FC7du1UtWpVR8dBOko6UwXbUKoyucTERMXHx6f6lZCQoOLFi2vevHnKkyePo6MinQwcOJDLfTIpDw8PPf3008nGli9fLj8/P2u5wr+Xl5eXXnvtNWXJkkWSFBsbq4kTJ6pBgwYc/0xk4sSJOnPmjCZNmuToKEhHt27d0rFjxzR16lR5eHjIy8tLnTt35p7ax0CpyuR69OghV1fXVL+ef/55ubjwVySz4ZgjyfHjxzVnzhwNGDDA0VGQzt5//32VLVtWhw4d0rx58xwdB+nk+PHjGjFihL788ksu981kduzYIcMwVKVKFf3444+aOHGi1q5dq3bt2jk6WobBPVWZ3Pvvv6/+/funuix37tzpGwaA00i6BOipp55Sz549HR0H6axGjRo6fPiwFixYoLlz52rw4MGOjoQnzDAM9ezZUx06dFDz5s0dHQfprHr16oqIiEh2yWexYsXUpEkT7du3T5UqVXJguoyBUpXJFS9ePNn9EwAgSR9//LHCw8O1bds2ubq6OjoO0tlLL72kl156SbVq1dLAgQMVHBwsHx8fR8fCE/T555/r5MmTWrJkiaOjwAHc3d1T3ENXv359SdLu3bspVWnAdT4AgGTWrl2rESNGaPz48apcubKj4yCdxMXF6fTp08nGAgMDZRiGjhw54qBUSC8LFizQuXPn5Onpaf18og0bNigsLEwWi8XR8fCEnTp1Snv27Ek2du3aNUn3ZgbFo3GmCgBgdfDgQQUFBal9+/Z64403HB0H6WjLli0KCAjQsWPHrGeljh07JkkqUaKEA5MhPUyfPl23b99ONtarVy/VqFFDvXv3dlAqpJdp06Zp/fr12rp1q3Vs9uzZkqQ6deo4KlaGQqkCAEi6d6YiKChIrq6u6t27t3bs2GFdVq5cOWYB/Zdr0KCBKlWqpBdffFGjRo2SxWLRwIED1aJFC5UpU8bR8fCEpXaMc+fOLW9vb1WpUiX9AyFd9ejRQ5999pmCg4PVtGlT7d69W5MnT1a7du249C+NKFUAAEnS/v37dejQIUlSw4YNky1bt26dGjVq5IBUSC8uLi5asmSJBg4cqB49eih79uzq0KGDPvjgA0dHA/CE+fn5admyZRo0aJAWLVokHx8fjRw5UsOGDXN0tAzDYhiG4egQAAAAAJBRMVEFAAAAAJhAqQIAAAAAEyhVAAAAAGACpQoAAAAATKBUAQCAFPbu3asJEyY4OkamERsbq7fffltRUVGOjgLABpQqAACQzJkzZxQQEKClS5cqPj7e0XEyhStXrmju3Llq2bKl4uLiHB0HwGOiVAFwOIvFIovF8tjLMoLIyEjrPiR9Zc2aVSVKlFC/fv107do1R0dMITQ0VBaLRevXr3d0lCeiUaNGKY6Jl5eXXnzxRf3++++OjudwcXFxat26tXx8fLRkyRJlzXrvIy1LlCiR4vt2/1f//v3TNWfSe6t79+7p+rpPio+Pj1auXKl9+/bprbfecnQcAI+JD/8FgHTg4eGhPn36SJKuXr2qzZs367PPPtPKlSu1bds2eXp6OjZgJtS5c2f5+voqJiZGhw8f1ooVK7RmzRr99NNPatmypaPjOczo0aN17NgxHThwQHny5EmxvE+fPvLw8EgxXq9evfSI969WsWJFzZgxQ23atFG7du3UoEEDR0cCkFYGADiYJONBP44etiwjOHXqlCHJ8PX1TTaekJBg9O7d25BkvPXWW44J9wAjR440JBnr1q1zdJQnomHDhqnu36ZNmwwXFxejSJEixt27dx0TzsEuX75s5MyZ0/j8889TLPP19TUkGadOnXoir530XunWrVua1r97965x6NAh48KFC08kT1o8qfdKUFCQUadOHbtuE8CTxeV/AOAALi4u1kt8Fi1a5NgwkCQ1aNBA9erV04ULFxQeHu7oOA4xc+ZM5c6dWyEhIY6O8kiurq566qmnVLhwYUdHsbsRI0Zo69at2rFjh6OjAEgjShUAOEjx4sUl3ZsUAM4hsx+TpUuXqkOHDtb7qOAY/v7+qlixohYvXuzoKADSiFIFIMP566+/9NZbb6ls2bLKkSOHihUrpk6dOunkyZOprv/TTz/pmWeeUe7cuZUrVy4999xz2rRpU4r11q9fL4vFotDQUEnS/Pnz9dxzzyl//vzas2eP3ffjzp07kqQcOXJYx0qUKKESJUqkWPdBN+UnTbogSRcuXFD//v1VpkwZdejQIcU2YmJiNHLkSJUpU0bZs2dX6dKl1bNnT507d+6BGf/44w81atRIefLkUZEiRfTf//5Xf//9d4r1Zs2apZo1a8rDw0MFChRQo0aNtHbt2lS3uWLFCjVq1EgFChRQnjx5VLVqVX355Zeprnv58mX16dNHxYsXV7Zs2eTr66shQ4YoJibmgZnNSO2YJCYmatKkSapUqZKyZ88ub29v9erVS+fPn7euM3nyZFksFn377beSpFWrVslisahatWrWdcqVKycPDw8lJiZax9atW6emTZvK09NTOXLkUO3atVP9Rfqfx3/16tV6+eWXVahQIS1ZssQu+24YhiIiItSwYUO7bO/cuXPq1auXSpYsqRw5cqhEiRL673//qytXrljXuX8il5IlS0qSZs+enWwCjMjIyFS3/7CJKu5f9sEHHyh//vwqVqyY1qxZo6+++kqFCxdWvnz59Pnnnyd73qZNm9SsWTMVKlRIefLkUZUqVTRt2jQZhmFdJ2kiF4vForCwMElS48aNrWONGjVKkefWrVt65513VLZsWbm5ualw4cLq3bv3QyeqadiwoXbu3PnA5QCcC/8VBSBDSUhIUNOmTbVjxw41adJErVq10qVLl/Tjjz/q999/1969e+Xu7m5d/7333tMHH3ygsmXLqlevXrp9+7YWLFig5557TsuXL1eTJk1SfZ3//Oc/mj59ukqWLKkyZcooZ86cdt+XpJnm7v/F21a7du1S06ZNFRUVpcqVK6coZrdv31bjxo21Y8cOVa1aVa+//rpOnjypWbNmafHixdq+fbv1l9okv/32m8aOHauGDRuqZ8+eWrhwoaZOnaosWbLos88+s643fPhwffTRRypbtqx69Oih2NhY/fzzzwoICNDvv/+u2rVrW9ddvHixWrdurXz58qlt27bKlSuXVq9erddee00xMTF68803reueOXNG9evX1+XLl9WyZUv5+vpq27ZtGjt2rLZv3641a9bIxcV+/zcYHx+vbdu2SZKqVq0q6V6hateunX7++WeVKVNGvXr10vHjxzVjxgwtW7ZMGzdulJ+fn3UfDx48KEnat2+fJOnQoUNKSEhQQkKCTpw4oUaNGlkzT58+XSEhISpSpIg6deokwzD0888/q1WrVpo5c+YDZ7X74IMP9N5776lIkSIqWbKk3SY5uXbtmmJiYlS0aNGHrjd+/PhUJ6p49913lT17dknSzZs39eyzzyoyMlItW7ZUu3btdOrUKU2bNk3h4eEKDw+Xi4uLPD09NXz4cOtzJk+eLH9/f7Vo0cK6XTP799NPP8nX11ctWrTQrFmz1KFDB7m4uKhDhw6aPXu2BgwYoJ49eyp79uxavny5WrZsqdy5c6tdu3bKlSuX1q5dq969e+v27dsaNGiQJOnZZ5+1Zt64caM2bdpknfREUor30c2bN/XMM89o//79atasmQIDA7V//35NmzZNmzZt0vbt21P9+VK0aFFt2LDB5n0HkM4cfE8XADzWRBW7d+82JBnPP/98svX+97//Gb6+vsb69eutY+Hh4YYk49lnnzViY2Ot4xEREYYko0aNGsm2sW7dOkOSUapUKSNfvnzGihUrTO9bahNVXL161fj555+N4sWLG5KMxYsXW5f5+vqmmNTi/u388yb+pEkXSpUqZXTt2tX4888/U83Rv39/Q5Lxn//8x0hISLCOf/TRR4Yk4/XXX7eOJd18b7FYjPHj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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.5)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User Purchase Power (Estimate)', fontdict={'size': 16})\n",
    "plt.yticks(size=12)\n",
    "plt.xticks([0, 1, 2, 3, 4, 5], ['-1', '1', '2', '3', '4', '5'], size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "84a55abecb7b81bc",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## City Level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "e527ee18-d78c-41d8-aa91-266d9e5c6577",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:47:15.785217600Z",
     "start_time": "2024-02-29T05:47:15.737039700Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts = users['city_level'].value_counts(dropna=False)\n",
    "counts.sort_index(inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "a20d3ef0-f526-4c28-a72d-c22026a91ece",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:48:44.998461400Z",
     "start_time": "2024-02-29T05:48:44.952634Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4, 5], dtype=int64)"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index.values\n",
    "categories[0] = '0'\n",
    "categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "b98ddfd6-7c03-45b1-82af-2893bab17f77",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:49:43.247798500Z",
     "start_time": "2024-02-29T05:49:43.109779300Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6lVZLBZbe/HixXX27FkFBwcrIiJC9evXz406AQAAACBfcnil7K233lJGRoZWrFih119/3dbeu3dvRUdHy8vLS+PGjcuVIgEAAAAgv3I4lG3ZskXBwcHq0qWLXF1dM/XVrl1b3bt3186dO3NcIAAAAADkZw6HsrS0NPn4+Nyx393dXUlJSY4ODwAAAABOweFQVqNGDW3dujXLvtTUVP3www+qUaOGw4UBAAAAgDNwOJQNGzZMe/bsUb9+/XTy5ElJ0tWrV7Vr1y4FBwcrISFBw4YNy7VCAQAAACA/cnj3xWHDhmn79u1asGCBbffFokWLSpIMw1Dv3r0JZQAAAACQDYdDmSTNnz9fnTp10sKFCxUfHy/DMFStWjX16dNHISEhuVUjAAAAAORbOQplkhQSEkIAAwAAAAAHOfxM2fjx47V8+fJsj0tKSpJhGI6+DQAAAADkaw6Hsg8//FB79uz522P+9a9/qUSJEqpbt64uXbpk99jr1q1T5cqVM7WlpqaqQIECslgsmb7Wr19v97jXr1/XCy+8oJIlS8rf319Lly619V29elUtW7ZU5cqVFRcXZ2ufM2eO3eMDAAAAwN1y+PbFbt266ciRI3r22Wd14sQJVa5cWcOHD1f16tUlSdHR0Zo9e7Y6duyodevWaebMmRo9enS248bFxal3794qXLhwpvZffvlFhmFo165dcnH5X5asVq2a3TUPGzZMq1at0vTp02W1WjVo0CD5+fmpadOmCg8Pl9VqVadOnTRjxgx98skniomJYZUPAAAAQJ5yOJT16tVL7du3t73+6aef9OWXX2rHjh2qU6eOdu3aJYvForCwMA0ZMkRr1qzJNpRFREToySefVEBAgC5cuJCpLyoqSlWrVlVgYKBD9R46dEhfffWVFi9erB49ekiSjh49qnfffVdr1qxRQkKCmjdvrqCgIH344YeSbm5kMn78eIfeDwAAAADs4XAoe++99+Tj46MVK1aoQYMG2rt3r7p166ZXXnlF69at08WLFyVJJUuWVEBAgLZv357tmFu3btWHH34oi8WisWPHZuqLjIxUo0aNHC1XGzdulKenp55++mlbW9euXTV16lRlZGTIarXKxcVFLi4uslqt+u233+Tp6SkvLy+H3xMAALNUfGON2SWYKmFyR7NLAAC7OfxMWXR0tHr16qVmzZqpYMGCatasmXr27KmI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cuRILV682NYfGRmpxo0b69ChQ3cc4+2339a8efN06tQplSpVSlu2bFHjxo1t/T/88IP69OkjSerSpYusVqtWrFih4cOH59p1AAAAAMCfObxS1rdvX7355pt666239Mcff9jaz58/r3feeUf79+/Xe++959DYAwcO1MCBA29rL1eu3B2fUWvRooVdtxsOGDBAAwYMyLLv7bfftv27SJEi2rJli30FAwAAAICDHA5lr7zyin766SdNmjTJ9kxWyZIldfnyZRmGoRYtWuiVV17JtUIBAAAAID9y+PZFNzc3/fDDD/rggw9Ut25dFSxYUCkpKapbt64++OAD/fjjj3Jzu68+mxoAAAAA7js5Sk1ubm569dVX9eqrr+ZWPQAAAADgVO46lJ09e1YnTpyQp6enqlevrgIFCuRFXQAAAADgFOy+fTEyMlJNmjSRr6+v/vGPf6hBgwYqUaKEXnvtNd24cSMvawQAAACAfMuulbL9+/erZcuWunr1qnx9feXn56fr168rLi5O06ZN08mTJzNtTw8AAAAAsI9dK2Vjx47VH3/8oa+//lonTpzQtm3btGfPHp05c0bNmzfXN998o7179+Z1rQAAAACQ79gVyrZs2aIWLVqoV69emdqLFSumyZMnyzAMbd26NU8KBAAAAID8zK5QlpiYqHr16mXZV7duXUnSpUuXcq8qAAAAAHASdoUywzBUuHDhLPu8vLwkSVarNfeqAgAAAAAnYfeW+FeuXNGJEyfuut/Pz8+xygAAAADACdgdymbOnKmZM2dm2WexWLLst1gsSk9Pz1mFAAAAAJCP2RXK/Pz8ZLFY8roWAAAAAHA6doWyhISEPC4DAAAAAJyTXRt9AAAAAADyBqEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATEQoAwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATEQoAwAAAAATEcoAAAAAwESEMgAAAAAwEaEMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADAR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AQBOh1AGAHAqCxYs0MKFC/X4449r7969mjZtmtavX68XXnhB27Zt05w5c7I8b9KkSTpw4IAefvjhvx0/LCzsgV6tAgDce4QyAIBTef/99yVJU6dOlYeHh609NDRUkrRo0aIszytbtqyqV68ud3f3vC8SAOBUCGUAAKdx9OhRxcXFqXTp0mrcuHGmvsqVK8vNzU379+83qToAgLMilAEAcuT333/Xq6++qipVqsjT01O+vr7q06ePjh49muXx3377rR577DEVLlxYXl5eatWqlf773//edtzmzZtlsVg0duxYSdLSpUvVqlUrlSpVSvv27XOo1lvn1ahR47Y+i8WiRYsW3fH2xb/b6OPWLYsWi0WDBg2SJA0aNMjWVrFiRdux165dk7e3tx566CFlZGTcNtat7+Ply5fv/gIdsGnTJrVr107FihWTp6enmjRpou+++y7TMXPmzJHFYtGnn3562/m3rv3f//53pvZff/1V/fv3V9myZVWgQAFVrVpV77//fpbXDADOzs3sAgAAD66MjAy1a9dOe/bsUZs2bdS1a1edO3dO33zzjbZv366YmBh5e3vbjn/nnXf07rvvqkqVKho6dKiuXr2qZcuWqVWrVlq7dq3atGmT5fs8++yzmjdvnipVqqSAgAAVKlTIoXpPnjwpSXrooYey7A8JCXFo3Hr16umtt96SJMXExGjVqlXq1KmT6tatK0kqXry47dhChQqpe/fu+vzzz7Vu3Tq1b9/e1rd7924dOXJEvXv3VrFixRyq5W7MmzdPw4YNU7ly5dSnTx8ZhqHly5era9eu+uKLLzRw4EBJUs+ePTVixAgtXrxYzz33XKYxFi9eLDc3N/Xu3dvWFhUVpVatWiktLU3dunVT6dKltWHDBr3xxhs6cOAAz9sBwF8ZAAD8iSTjTn8e/toXHR1tSDJat26d6bjp06cbFSpUMDZv3mxri4iIMCQZjz/+uJGammprj4qKMiQZjRo1yjTGpk2bDEmGv7+/UbJkSeOHH37I8bVNnDjRkGT069fvrs8dMGCAIck4duzY3x73xRdfGJKML7744o7HbN261ZBk9OnTJ1P7yJEjDUnGTz/9dNf1/bnGv3vvW06dOmV4eHgY1apVMy5dumRrP3nypOHl5WWUKVPGSE9Pt7U//fTThouLi3HmzBlb28WLFw03NzejQ4cOtjar1WrUrl3bKFCggBEdHW1rT0tLMxo1amRIMmJjY7OsacyYMYYkY9OmTfZfNADkA6yUAQAc5uPjI4vFouPHj+vcuXMqU6aMJGn48OEaPnx4pmMXLlwo6eaq0fjx4zP1eXt7KzIyUklJSZlW1qSbz4GtX79erVu3znG9tz5jzexb6Jo3by5/f3+tXLlSf/zxh7y8vGS1WrVkyRL5+fmpVatWeV7DN998o9TUVJUpU0ZTp07N1FeiRAmdPHlScXFxqlOnjiSpX79+WrFihb755hvb3H777bdKT09Xv379bOfu27dPsbGxqlixor755ht98803tr6CBQtKkjZu3KhatWrl9SUCwAODUAYAcFjZsmX15ptvauLEiSpfvrxq1aqlBg0a6LHHHlP37t1VpEgR27Hx8fGSpO++++62Z5ZuOXPmzG2hrHPnzrkSyCSpaNGiknTH57XKlSunP/74Q1euXMmV97sTi8WiAQMGaMyYMVq5cqX69OmjrVu36syZMxo9erRcXPL+ke9b87FlyxZt2bIly2NOnz5tC2UdO3ZUyZIltXjxYlsoW7x4sby9vdWlS5fbxk1ISNDEiRPvOC4A4H/Y6AMAkMmtQGC1WjO131pd+mtgmDBhguLi4vTBBx+oQYMG2rVrl4YMGaKqVavq2LFjtuMMw5AkRUdHyzCMLL+qV69+Wz0NGjTItWu7tcHHr7/+eltfenq6Ll686PDzanerf//+slgs+uqrryTd3IrfYrHYnuPKa7fmY+XKlXecjyeffNJ2fIECBdSzZ0/t3LlTx48f19mzZ7V161aFhITI09PztnFHjBhxx3EnT558T64RAB4UhDIAQCalS5eW9L9NMW659drHx8fWdvr0ae3cuVPlypXTyJEj9cUXXyguLk7Tp0/XuXPnMq2UVKtWTZIUFxd323uuXr1aM2fO1NmzZ3P9ev4sMDBQhQsX1qFDh3T8+PFMfb/88ovS09Ntm3M4yt5VrooVKyooKEjr16/X6dOntWzZMj3++OPy9/fP0fvb6+/mY8uWLZo5c6Zt1euWfv36yTAMLV26VN98842sVqv69+9v97hHjhzRzJkztWnTpty6DADIFwhlAIBMWrZsKUn6+OOPM7XPnDkzU790M0w1a9ZMc+fOzXTsreeFzp07Z2u7tTvflClTMt0+ePbsWfXr10//93//l2nFJS94eXlp6NChkqRXX33VthqYnp6ucePGSZJ69OiRo/e4tf39Xz8SID09/bZjBw4cqPT0dA0ePFi///67bTv9eyEkJEQFChTQnDlzdOrUKVv71atXNWTIEL300ku3rZY2bdpUVapU0ddff62FCxeqQoUKevzxxzMdU69ePdWqVUsbNmzQxo0bM/W99dZbeumll24LewDg7HimDACQyTvvvKPVq1frww8/VFRUlOrVq6d9+/Zp06ZNKly4sN555x3bsSEhIRo3bpxGjRqlbdu2qVq1arp06ZKWLVsm6eZW6rcEBgbqzTff1Hvvvafq1aurU6dO8vDw0LfffqvLly9rxowZ92Qb+IkTJyoiIkLLli1TYGCgHn/8cW3evFl79+5Vy5Ytc3z7YJMmTVSjRg1NmTJF586dU7FixbR//37VqFHjtg01goOD9eKLL2rdunUqXLiww1vy/9X8+fO1c+fOLPt69OihVq1aydfXVzNmzNALL7ygWrVq6emnn1axYsW0evVq/frrr3rllVeyvJ20X79+tp+Bt956y7Z5yi0Wi0VhYWFq3bq1nnjiCT311FMKCAhQRESEtm3bpmbNmt3T8AkAD4R7udUjAODBEBMTY3Tr1s0oVaqU4erqapQqVcro1q2b8csvv9x27KlTp4wRI0YY1apVM7y8vIzixYsbjz32mLFs2bIsx166dKnxj3/8wyhUqJBRvHhxo1WrVsb69etvO+7WlvhjxozJ7cszUlJSjPHjxxsBAQFGgQIFjAoVKhhvvfWWkZKScsdz7N0S3zAMIyEhwejevbtRunRpw83NzahYsaIRFhb2t+MOHjzY0cu5bay/+/r3v/+d6Zz169cbTzzxhOHt7W14e3sbzZo1M5YuXXrH9zh27JhhsVgMScahQ4fueFx8fLzRt29fw8fHxyhYsKBRs2ZNY/LkyX/7PWZLfADOymIY//+JXAAAcM9NnjzZttL46KOPml0OAMAEhDIAAO6x06dP69VXX1WZMmX0xRdfyN/fX1FRUWaXBQAwCc+UAQBwj7m4uGj9+vVKTk5W06ZN9dlnn5ldEgDARKyUAQAAAICJ2BIfAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADARoQwAAAAATPT/ANUgIDSMjQbSAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(categories, proportions * 100, width=0.5)\n",
    "plt.ylabel('Percentage of Users', fontdict={'size': 16})\n",
    "plt.xlabel('User City Level', fontdict={'size': 16})\n",
    "plt.yticks(size=12)\n",
    "plt.xticks([0, 1, 2, 3, 4, 5], ['-1', '1', '2', '3', '4', '5'], size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "703456d1d6553c6e",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Table 3 Clicks--点击"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "6bbd9d7761fd8b77",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:20.716682Z",
     "start_time": "2024-02-29T08:55:12.643959400Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 'clicks' table    点击数据\n",
    "clicks = pd.read_csv('./JD_data/JD_click_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "bcc7ea72139c6a3b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:27.419065800Z",
     "start_time": "2024-02-29T08:55:27.349065100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>user_ID</th>\n",
       "      <th>request_time</th>\n",
       "      <th>channel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>a234e08c57</td>\n",
       "      <td>4c3d6d10c2</td>\n",
       "      <td>2018-03-01 23:57:53</td>\n",
       "      <td>wechat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6449e1fd87</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-01 16:13:48</td>\n",
       "      <td>wechat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>2791ec4485</td>\n",
       "      <td>2018-03-01 22:10:51</td>\n",
       "      <td>wechat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>eb0718c1c9</td>\n",
       "      <td>2018-03-01 16:34:08</td>\n",
       "      <td>wechat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>09b70fcd83</td>\n",
       "      <td>59f84cf342</td>\n",
       "      <td>2018-03-01 22:20:35</td>\n",
       "      <td>wechat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20214510</th>\n",
       "      <td>a8a96e022a</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31 21:45:07</td>\n",
       "      <td>others</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20214511</th>\n",
       "      <td>eb3f2d2fd8</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31 11:31:11</td>\n",
       "      <td>others</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20214512</th>\n",
       "      <td>fbce41fd82</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31 11:31:08</td>\n",
       "      <td>others</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20214513</th>\n",
       "      <td>fbce41fd82</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31 19:28:25</td>\n",
       "      <td>others</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20214514</th>\n",
       "      <td>87b853b910</td>\n",
       "      <td>-</td>\n",
       "      <td>2018-03-31 06:29:47</td>\n",
       "      <td>others</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20214515 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              sku_ID     user_ID         request_time channel\n",
       "0         a234e08c57  4c3d6d10c2  2018-03-01 23:57:53  wechat\n",
       "1         6449e1fd87           -  2018-03-01 16:13:48  wechat\n",
       "2         09b70fcd83  2791ec4485  2018-03-01 22:10:51  wechat\n",
       "3         09b70fcd83  eb0718c1c9  2018-03-01 16:34:08  wechat\n",
       "4         09b70fcd83  59f84cf342  2018-03-01 22:20:35  wechat\n",
       "...              ...         ...                  ...     ...\n",
       "20214510  a8a96e022a           -  2018-03-31 21:45:07  others\n",
       "20214511  eb3f2d2fd8           -  2018-03-31 11:31:11  others\n",
       "20214512  fbce41fd82           -  2018-03-31 11:31:08  others\n",
       "20214513  fbce41fd82           -  2018-03-31 19:28:25  others\n",
       "20214514  87b853b910           -  2018-03-31 06:29:47  others\n",
       "\n",
       "[20214515 rows x 4 columns]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clicks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "c3ae7c8a-c70e-4996-a684-6c199271c2f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sku_ID          0\n",
       "user_ID         0\n",
       "request_time    0\n",
       "channel         0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clicks.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "a5a7ed50-3864-4017-b0a5-2353fd13139f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sku_ID\n",
      "068f4481b3    860799\n",
      "3c79df1d80    456611\n",
      "8dc4a01dec    403756\n",
      "fbce41fd82    330329\n",
      "ca7647a231    267719\n",
      "               ...  \n",
      "4e0a8817fa         1\n",
      "b53efda6d6         1\n",
      "d9027ffe56         1\n",
      "1c7d2913ef         1\n",
      "c1b1a4b058         1\n",
      "Name: count, Length: 31867, dtype: int64\n",
      "user_ID\n",
      "-             2308420\n",
      "c45ca918e4       1413\n",
      "8179b6b038       1329\n",
      "dacc867d8e       1222\n",
      "939e9c1193       1147\n",
      "               ...   \n",
      "3dc3db7d75          1\n",
      "0f5242abd6          1\n",
      "a6b10488d0          1\n",
      "e6a4c549eb          1\n",
      "4c3d6d10c2          1\n",
      "Name: count, Length: 2557837, dtype: int64\n",
      "request_time\n",
      "2018-03-19 10:02:45    100\n",
      "2018-03-19 10:03:20     98\n",
      "2018-03-19 10:02:44     97\n",
      "2018-03-19 10:03:04     94\n",
      "2018-03-19 10:00:02     94\n",
      "                      ... \n",
      "2018-03-06 03:20:46      1\n",
      "2018-03-06 03:15:32      1\n",
      "2018-03-06 03:20:44      1\n",
      "2018-03-19 06:31:30      1\n",
      "2018-03-31 05:32:03      1\n",
      "Name: count, Length: 2403971, dtype: int64\n",
      "channel\n",
      "app       15107411\n",
      "wechat     2632726\n",
      "pc         1023951\n",
      "mobile      974830\n",
      "others      475597\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in clicks.columns:\n",
    "    print(clicks[i].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "632da14a9252fc2d",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## channel--点击渠道"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "c2035ae4bf77e9b9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:51.775914100Z",
     "start_time": "2024-02-29T08:55:51.273892200Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "channel\n",
       "app       15107411\n",
       "wechat     2632726\n",
       "pc         1023951\n",
       "mobile      974830\n",
       "others      475597\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = clicks['channel'].value_counts(dropna=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "bdd2df6a53137917",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:51.823710300Z",
     "start_time": "2024-02-29T08:55:51.776918600Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()\n",
    "categories = counts.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "aa0813ce0e73ea01",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:51.973246Z",
     "start_time": "2024-02-29T08:55:51.812710100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6tatm+8FLdwJoaroIFQBAADAivxkgzxd/vdXvr6+atCggRo0aODMywEAAACgyMjTQhUAAAAAgCsjVAEAAACABYQqAAAAALCAUAUAAAAAFhCqAAAAAMACQhUAAAAAWECoAgAAAAALCFUAAAAAYAGhCgAAAAAsIFQBAAAAgAWEKgAAAACwIE+h6r///a+GDx9+vWsBAAAAAI+Tp1A1atQobd++PUdbzZo1NW7cuOtSFAAAAAB4ijyFqqSkJN1yyy052hITE5WcnHxdigIAAAAAT5GnUFWyZEmlpqZe71oAAAAAwON456XTnXfeqRkzZqhy5cqqUqWKo33r1q369NNPr/nafv36WasQAAAAANyYzRhj/q7Tr7/+qnvvvVe//fabbDabJMkY4/j7lVzan5WVVXDVXmdpaWkKDg5WamqqgoKCXF2OJOkaX2Jcw9+PagAAAODq8pMN8jRTVbNmTW3btk1r167VoUOHlJ2drQEDBqhjx47q2rVrgRQNAAAAAJ4oT6FKkooXL6577rnHsT1gwACFh4erf//+16UwAAAAAPAEPPwXAAAAACzI80zVX02dOlX169cvyFoAAAAAwOM4Haq47A8AAAAALISqS06cOKE5c+Zox44dkqRbbrlFvXr1UunSpS0XBwAAAADuzlKomjdvnqKjo3X69GldWpndZrNp+PDhmjZtmrp06VIQNQIAAACA28rTc6quZMOGDbrzzjvl7e2txx9/XA0bNpQkJSQkaMKECbpw4YJWr16tRo0aFWjB1xPPqSo6eE4VAAAArMhPNnA6VN1///1auXKl1q5dq/Dw8Bz7tm3bpqZNm+ruu+/WokWLnDm8SxCqig5CFQAAAKzITzZwekn11atXq3v37rkClSTVq1dPPXr00A8//ODs4QEAAADAIzgdqi5cuCA/P7+r7i9WrJiysrKcPTwAAAAAeASnQ1XDhg01d+5cHTlyJNe+w4cPa968eR51PxUAAAAAOMPpUDV8+HCdPHlSjRs31sSJExUfH69169Zp4sSJatq0qZKTkzV8+PCCrBUAAAAA3I7TC1VI0vjx4/X//t//018PYbPZ9M477+iZZ56xXGBhYqGKooOFKgAAAGBFoaz+d8mOHTv0ySefaOfOnZIuPvw3Ojpat956q5XDugShquggVAEAAMCKQg1VRQmhquhgVAMAAMCKQllS/Xq7cOGC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P/74o37//Xdd7dasfv36WXkLAAAAAHBrToeqLVu2qEOHDjpy5MgV919acp1QBQAAAKAoczpUPf300zp8+LA6duyodu3aqXjx4gVS0IoVK/TZZ5/p9OnTuuuuuxQTEyNv74tlzpkzRyNGjNDx48fVs2dPvffee/Lz85Mkvf3223r99df1yiuvaMiQIZKk+fPnq1mzZipfvnyB1AYAAAAAf+X0kupBQUFq2rSp4uLiCqyYWbNmacCAAerbt68CAgI0efJkdenSRTNmzNCyZcvUtm1bPf744+rYsaNGjhypiIgITZgwQRcuXFBISIg++eQTPfLII0pOTpaXl5cee+wxTZw4Mc/vz5LqRQdLqgMAAMCK/GQDp0NVxYoV1bt3b40dO9apIv/q3LlzqlKlisaMGaMBAwZIkmbMmKHo6GglJyerXbt2CgkJ0eLFiyVJe/fuVd26dXXw4EFlZWUpMjJShw4dUsWKFbVp0ybt3btX+/fvV58+ffJcA6Gq6CBUAQAAwIpCeU5V586dNW/ePKWnpzt7iBzOnj2r1157Tf3793e0Va5cWdnZ2UpOTta6detyBKTatWurbt26WrFihbKzs2W3XzwVu92u7OxszZkzR7169SqQ2gAAAADgapwOVWPGjFFISIjatm2rXbt2WS6kZMmSGjRokLy8vCRJGRkZGj9+vO68805lZmYqOztb4eHhOV5Ts2ZN7dmzR2XLltXJkyf122+/KSUlRenp6QoNDZWPj4/lugAAAADgWpxeqOLZZ5/VTTfdpP/973+qV6+eIiIidNNNN6lYsWKOPjabTVOmTMn3sV999VVNnjxZfn5++u6773TixAlJUkhISI5+gYGBOn78uHx9fdW7d2/VrFlTMTExmjFjhgYPHvy375ORkaGMjAzHdlpamiQpMzNTmZmZ+a77evD3d3UFnslNvn0AAADwUPnJA07fU3XpcrtrHtxmU1ZWVr6PvXjxYv33v//Vl19+qddff12dO3dWnTp1HPdMXdK3b1/5+vpq8uTJkqSkpCSVKVNGI0aMUKNGjfTUU0+pX79+Gj9+/BXfJzY2VqNGjcrV/tlnnxXYaoYAAAAAPE96eroeeuih67tQRVJSUp76VatWzZnDS5LGjx+voUOHKikpSVWrVtW6devUuHFjx/777rtPN910k959911H26RJkxQZGalevXopNjZWQ4YM0ebNm1WpUqVcx7/STFWVKlX0xx9/uM1CFcHBrq7AM6WmuroCAAAAeLK0tDSVKVMmT6HK6cv/rISlK8nMzNThw4dzHLdz584aMmSIdu3apapVq2r16tWOUGWMUUJCglq2bJnjOAkJCRo0aJCSkpLUu3dvTZgwQUlJSVcMVb6+vvL19c3V7uPj4zb3Y5096+oKPJObfPsAAADgofKTB5xeqOISY4y2b9/ueF7V3r17tXv37nwfZ+3atapTp44OHDjgaNuzZ48kqXr16urRo4c++ugjx31Ps2fP1tGjR9WmTRtH/6VLl+ree+/NURsAAAAAXE+WQtWnn36qypUrKzw8XPfdd58kacmSJapbt66GDRuWr2Pdeeedqlevntq3b6/58+drwYIFjgf91q5dW8OGDVN6eroiIyPVt29f9e/fX506dVLDhg0dx5g3b566du0q6eJM2syZM7Vr164Cn1UDAAAAgEucDlULFy5UdHS00tLSVLlyZcesUL169VSjRg29/fbbmjt3bt4Lsdu1cOFC1atXTwMGDNDjjz+uTp066bPPPpMklStXThs3blSTJk30888/a8iQIfr8888drz9+/LjCwsIcS7LHxsZq6NChevjhh6946R8AAAAAFASnF6po2rSp9u/frw0bNmjChAkaPXq0Y6W/06dPKyIiQuXLl9fq1asLtODrKT9PTS4sNpurK/BMXPkJAAAAK/KTDZyeqdq6dau6deumSpUqyfaX3/wDAwN1//33a/v27c4eHgAAAAA8gtOhytfX95rPqkpJSXH20AAAAADgMZwOVY0bN9b8+fMdq/Fd7tChQ5o3b56aNGliqTgAAAAAcHdOP6fqxRdfVJs2bdS0aVNVqFBBkvTVV19p+/btmjBhgk6fPp3vFQABAAAAwNM4vVCFJE2ePFlPPfWUMjIyLh7MZpMxRsWKFdN7772nmJiYAiu0MLBQRdHBQhUAAACwIj/ZwFKokqTDhw/riy++0O7du2WMUZ06ddSjRw+PXMacUFV0EKoAAABgRaGGqqKEUFV0MKoBAABgRaEsqX4lxhht2bLF8bwqAAAAACjqLIWqhQsX6rbbbtPcuXMlSenp6YqIiFClSpUcbQAAAABQlDkdqtavX69u3bppx44dunQFoY+Pj1q1aqVTp07pgQce0Jo1awqsUAAAAABwR06HqlGjRikwMFBr1qxR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tqOjowvkawT3lpiY6LgfpVevXgoMDFSpUqX06KOP5hhP2dnZeuutt3TTTTfJ399fderU0WuvvaaMjAwXVo/rrVWrVmrZsqWGDx+uoKAg3XrrrdqwYYNatmypgIAA9e3bV5JkjNG7776rOnXqyNfXV2FhYXr33Xd1pUeAfvvtt7rlllvk5+en22+/XUuXLr3m+xfE7HlePn/hXuLi4hy/Z1WoUEFPP/204zOpVatWstlsqlGjhiTpH//4h+Nn15XurTPGaMyYMapWrZoCAgJ011136ZdffsnR548//tCgQYMUGhqqwMBANW7cWAsXLsx1rOrVqys6OlqZmZl64403dOutt6pdu3a5+k2aNEn16tVTQECAQkND1a9fP/3+++8F8JXxAAYwxnzzzTfGZrOZu+66y0yaNMmMGTPGlC1b1rRu3doYY8zUqVONJOPn52d69uxpPvjgAxMVFWUkmZdfftlxnP79+xsvLy/j7+9vnn/+eTN27FhTp04dY7fbzdKlS111eihgjzzyiClTpowxxphPPvnESDL16tUzxhjz2muvGZvNZlJSUsywYcOMl5eXeeKJJ8zkyZPN888/b3x8fEz79u0dx0pLSzO33nqr8fX1Nc8995yZOHGiueeee4wk8+mnnzr69e/f31SsWNE0a9bM3HnnnWbixInm4YcfNpLM008/7ei3ZcsW4+fnZ8LDw82HH35oxo8fb2rUqGHCwsJMZmamMcaYNWvWmBkzZpgZM2YYSaZr166O7TVr1hTGlxAu9ttvvzk+0xo1amTef/99M2jQIMfnYHZ2tjHGmL59+xpJplevXmbSpEkmJibGSDIDBgxw8RngemrZsqXx9vY27dq1My+99JKRZIoVK2aeeeYZ06NHDyPJbNmyxQwaNMjxGfLhhx+arl27Gknmsccecxyrf//+xsfHxwQGBprnnnvOvPPOO+amm24y3t7e5ocffrjq+7ds2fJv65RkRo4cecV9efn8hXuZOXOmsdvtJiIiwrz77rvmmWeeMd7e3ub222836enpJi4uzsyYMcOMGzfOSDIxMTGOn11btmxxHOfS72w9evQw1apVM2PHjjUjRowwxYoVM+Hh4Y5+KSkpJiwszFStWtW88cYbZtKkSaZNmzZGkpk9e3aO2qpVq2b69u1roqKiTHBwsHnooYfMm2++maPPtGnTjCTTvn178/HH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P3/hPu644w6VLFlS//nPf3T+/HlH+3//+1+lpKTkGE+lS5eWJMs/u9q2batjx44pLi7O0XbhwgV16NBBffr0yfeMfMeOHdWnTx9JUnBwsNq1a6dBgwbpzJkzuVYdLIq4/A8qXbq0KlasqNmzZ6tOnTq6cOGCpk2bpj179kiSzp496+j73XffqWfPnmrVqpUWLFigLVu2aPTo0fLz83P08fHxUWxsrI4eParQ0FBNnDhR2dnZeuWVVwr93HD9NG7cWNnZ2Y5rtOvVq6fs7GzVr19fxYoVU61atfT//t//05tvvqnU1FTdf//9SkpK0vjx49W2bVtHyB4yZIhmz56tvn37at26dapdu7a++uorbdq0Se+9994VLwO8lvDwcK1cuVKvv/66SpQooc8++0wJCQmSco7lS+677z5NmzZNVapUUYkSJbRhwwYNHDjQcd8YirYzZ86oZcuWio6O1rZt2/Txxx+rbdu2jstmHn74YX300Uf6448/dPfdd2vLli36z3/+o27duikiIsLF1cOVmjdvrkceeUSTJ0/WyZMndc8992j58uWaO3euHnnkEcf9JdLF2f0XXnhBBw8eVIUKFTRp0iSdP39eI0aMuC615fXzF+4jICBA7777rvr3769mzZopOjpav/76qz788EPVr18/x717JUqUUIsWLRz3GHt5eWnVqlUaM2ZMrssHr2XIkCGaNWuWunTposGDB6t27dqaO3eudu/erf/+97/5Poc77rhD//znPxUQEKAmTZro5MmTGjt2rEqWLJnrP9+LJBcvlAE3sXHjRtOiRQtTvHhxU65cORMTE+NYMe2tt95yrCTzxRdfmBYtWhhfX19TrVo1M27cuBzH6d+/vwkODjZff/21qVOnjilWrJiJiIgwcXFxrjkxXDeJiYk5ltQ/ceKEkWQGDx6co9/EiRMdS6ZXr17dDBs2zJw6dSpHnxMnTpjHHnvMlC1b1gQGBpomTZqYefPm5ejTv39/U61atVx1/LV979695r777jMlSpQwISEhpnfv3mb58uVGknnyySdzvf7kyZMmOjralClTxnh7e5ubb775iqsEomi5tHrWa6+9Zvr162cCAwNNyZIlzWOPPZZjVb+srCwzZswYU6tWLePn52fq1q1rxowZY86fP+/C6nG9/XX1PV22yt7KlSsdK0RmZ2ebsWPHmtq1axsfHx9Tu3Zt88477ziW5Dfm/34uzpkzx9SqVcv4+PiY8PBws2jRojy//9Xob1YvzcvnL9zL4sWLTZMmTUyxYsVMuXLlzJNPPnnF1fb2799vunbtakJCQkyxYsVMgwYNHKv6Xfqd7bfffsvxmiu1Hz9+3Dz66KOmfPnypnjx4iYyMjLXz19jLq7+179//2vWnp2dbcaNG2fq1atnAgMDTUhIiGnXrp3ZtGlTfr8MHslmzBWeUAf8xbRp0/SPf/xDP/30kxo0aHDVftHR0Zo/f75SUlIKrTYAyK/ExETVqFFD48aN07PPPuvqcgAAHo57qgAAAADAAmaqAAAAAMACZqoAAAAAwAJCFQAAAABYQKgCAAAAAAsIVQAAAABgAaEKAAAAACwgVAEAAACABYQqAAAAALCAUAUAAAAAFvx/iNQZbBBVF+gAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "colors = ['blue', 'orange', 'green', 'red', 'purple']\n",
    "plt.bar(categories, proportions * 100, width=0.5, color=colors)\n",
    "plt.ylabel('Percentage of Clicks', fontdict={'size': 16})\n",
    "plt.xticks(categories, size=14)\n",
    "plt.yticks(size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2ae68cd7422aac6",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## hours"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "fe66150a3d654c4e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T08:55:57.736725Z",
     "start_time": "2024-02-29T08:55:51.972245300Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "\n",
    "click_hours = [datetime.strptime(record, '%Y-%m-%d %H:%M:%S').hour\n",
    "               for record in clicks['request_time']\n",
    "               if record.startswith('2018-03-01')\n",
    "               ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "73597380acf3cdb8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:30:59.328177200Z",
     "start_time": "2024-02-29T04:30:59.316035700Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from collections import Counter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "615359fb-79e0-421e-86ea-ff0245efd31e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Counter({23: 54020,\n",
       "         16: 50921,\n",
       "         22: 70040,\n",
       "         8: 35389,\n",
       "         15: 57926,\n",
       "         13: 62468,\n",
       "         20: 50028,\n",
       "         21: 60244,\n",
       "         14: 63611,\n",
       "         12: 57464,\n",
       "         18: 35428,\n",
       "         1: 14753,\n",
       "         7: 22089,\n",
       "         10: 69271,\n",
       "         11: 59442,\n",
       "         3: 4740,\n",
       "         9: 55439,\n",
       "         19: 39860,\n",
       "         17: 40223,\n",
       "         6: 9837,\n",
       "         4: 3439,\n",
       "         0: 34667,\n",
       "         5: 4167,\n",
       "         2: 6779})"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = Counter(click_hours)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "3caac3930c77e92e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:30:59.917253900Z",
     "start_time": "2024-02-29T04:30:59.891137100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0, 34667),\n",
       " (1, 14753),\n",
       " (2, 6779),\n",
       " (3, 4740),\n",
       " (4, 3439),\n",
       " (5, 4167),\n",
       " (6, 9837),\n",
       " (7, 22089),\n",
       " (8, 35389),\n",
       " (9, 55439),\n",
       " (10, 69271),\n",
       " (11, 59442),\n",
       " (12, 57464),\n",
       " (13, 62468),\n",
       " (14, 63611),\n",
       " (15, 57926),\n",
       " (16, 50921),\n",
       " (17, 40223),\n",
       " (18, 35428),\n",
       " (19, 39860),\n",
       " (20, 50028),\n",
       " (21, 60244),\n",
       " (22, 70040),\n",
       " (23, 54020)]"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = sorted(counts.items(), key=lambda x: x[0], reverse=False)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "ee0d4b6eb8a48e9e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:31:00.706381200Z",
     "start_time": "2024-02-29T04:31:00.657380Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(34667,\n",
       " 14753,\n",
       " 6779,\n",
       " 4740,\n",
       " 3439,\n",
       " 4167,\n",
       " 9837,\n",
       " 22089,\n",
       " 35389,\n",
       " 55439,\n",
       " 69271,\n",
       " 59442,\n",
       " 57464,\n",
       " 62468,\n",
       " 63611,\n",
       " 57926,\n",
       " 50921,\n",
       " 40223,\n",
       " 35428,\n",
       " 39860,\n",
       " 50028,\n",
       " 60244,\n",
       " 70040,\n",
       " 54020)"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 解包\n",
    "hours, click_counts = zip(*counts)\n",
    "click_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "532e30a6d08ead82",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:34:42.271511Z",
     "start_time": "2024-02-29T04:34:42.195006300Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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pk3LlyIBAAAAoKhyOJR99tlnio6OVlhYmBITE/X222+rQYMG2rRpkwYMGKD4+Hi9/PLL+VkrAAAAABQ5Di/08eKLL6pkyZLq06ePKleurPT0dD3xxBOaMGGCatasmZ81AgAAAECRlafVF3v16qWSJUuqV69eql27thYvXqxSpUrlV20AAAAAUOTl6TllkvTMM89o4cKFio+PV4cOHW65KiMAAAAA4P/J1UxZ27Ztb7mNt7e31qxZowYNGuiee+6RJFksFq1ZsyZvFQIAAABAEZarULZ+/fpcH/DIkSM6cuSIpGuhDAAAAABwY7kKZVlZWQVdBwAAAAAUS3n+TRkAAAAAwHF5DmXnzp3TpUuXJEkZGRmaPHmy9u7dm9fDAgAAAECxkKdQ9uabb6py5cqKjo6WJKWlpWngwIFq2LChBg4cmC8FAgAAAEBR5nAoW7BggT7++GOVL1/ettpiqVKlFBERodq1a+uTTz7R3Llz861QAAAAACiKHA5ln3zyie69914dOXJEDz30kCTJyclJw4cP144dO3Tvvfdq2rRp+VYoAAAAABRFDoeyI0eOqGPHjvL09MzW5+rqqtDQUB04cCBPxQEAAABAUedwKMvKyrIt8JGTpKQkubi4OHp4AAAAACgWHA5lLVq00JIlSxQXF5et7/Dhw/r222/VsmXLPBUHAAAAAEVdrh4enZNhw4apdevWatKkifr376969epJkvbu3aupU6fq6tWrGjp0aL4VCgAAAABFkcOhrGXLlpozZ4769eun999/XxaLRZJkGIZKlSql2bNnM1MGAAAAALfgcCiTpB49euiRRx7R4sWLdfjwYUlSrVq11LVrV1WqVClfCgQAAACAoixPoUySKlWqpP79++dHLQAAAABQ7Di80AcAAAAAIO8IZQAAAABgIkIZAAAAAJiIUAYAAAAAJsrVQh9t27aVxWLR3Llz5efnZ2u7FYvFojVr1uStQgAAAAAownIVytavXy+LxaLk5GS7tlu5/uwyAAAAAEDOchXKsrKyctUGAAAAALg9/KYMAAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABMRCgDAAAAABMRygAAAADARIQyAAAAADBRrh4e3bZtW4cObrFYtGbNGof2BQAAAIDiIFehbP369Q4d3GKxOLQfAAAAABQXuQplWVlZBV0HAAAA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mqZPn64BAwY4FMjS09P1+++/27Vdn3k7cuSIqlatqpiYGFufYRjatWuXLaQFBgba9UtSbGysXf/27dvt7uuMjY2Vq6urvL29FRgYqOTkZO3atcvWf+jQISUnJ9/w92QAAAAAkFd5DmWSlJmZqdOnT+vUqVMO/7Buy5Ytuv/+++0e+Hx9EY9q1aopPDxc06dPt00BRkVF6ezZswoODpYkhYeH66efftLu3bslSSdPntSyZcts/e3bt9eVK1f0+eefS5KuXr2qzz77TI888ogsFov8/f3VqFEjjRs3zjb+5MmTVaZMGTVu3NihcwIAAACAW8nT7YvHjh3T4MGD9fPPPys1NVXStSm64OBgffjhh6pTp06uj9WqVSvVq1dPjz/+uMaMGSOLxaJBgwapffv2CggI0Ntvv60FCxaoSZMmatq0qRYtWqQOHTrYAtOTTz6pNm3aqG3bturQoYOio6Pl4+OjF198UZJUvnx5DRs2TAMGDND69esVFxenAwcOaNasWbYaxo8fr3bt2ikoKEiurq5atWqVJk6cKGfnPF0mAAAAALghh2fK4uLibMviOzs7q379+mrYsKFKly6tlStX6v/+7/908ODB3BdSooR++OEH1atXT71799Yrr7yiDh06aP78+ZKu/SZs586datasmfbv36+BAwdq4cKFtv0tFot+/PFH/etf/9LevXvVpk0bbdq0yW6xjaFDh2rWrFk6ffq0ypcvrw0bNqhJkya2/qCgIG3cuFFWq1WJiYmaNWuWBg4c6OglAgAAAIBbcngK6O2339bFixc1btw4DRgwwLbYRUZGhqZNm6aBAwdqyJAhWrZsWa6Pec8992jBggU37Pf19dVXX311w36r1aoxY8bk+Oy063r16mX3gOp/atGihX766afcFQwAAAAAeeRwKFu7dq1CQ0P11ltv2R/Q2VkDBgzQmjVrtG7dujwXCAAAAABFmcO3L1osFlWrVu2G/dWqVbM9BwwAAAAAkDOHQ9njjz+u5cuX6+LFi9n6Ll++rOXLl6tt27Z5Kg4AAAAAirpc3b74z4cuS9Krr76qTZs2qWnTpho8eLACAwPl5OSkffv2KTIyUv/73//Uv3//fC8YAAAAAIqSXIWyWrVq5XgromEYkqRXXnklx/Z27dopIyMjrzUCAAAAQJGVq1D23HPP8fswAAAAACgAuQplc+bMKeAy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AAAAAExEKAMAAAAAExHKAAAAAMBEhDIAAAAAMBGhDAAAAABM5Gx2AQAAoHC5fPmyxo4dq9GjR8tqtTp8nIyMDB09evS29/Pz85O7u7vD43799dfy9fXVI4884vAxAOBO4jllAADAJj09XcHBwTp69Ki2bt2qKlWqOHyss2fPqlKlSre936pVq/TYY485PG7Pnj21dOlS/frrr2rYsKHDxwGAO4XbFwHgLmSxWGSxWG67D/amT5+uOnXqqFSpUvL29lZwcLBSUlJu+zjPP/+87bq7uLioYsWKeuyxxzR37lxlZmYWQOUF580339T+/fsVHR2dLZDFxcVp3LhxevHFFzVw4ECtXLnypse6PsvWq1cvGYZxy9eIESMkSWXKlLllnePGjbvh5/yLL75Q69atFRYWpsuXL+fmtAHAVIQyAECx9Omnn+rVV1+Vu7u7Xn/9dXXr1k0nT55UWlqaw8ds3769Bg0apIcfflgxMTF6/vnnFRISov/973/5WHnB2bBhg6ZOnaovvvhCderUseubN2+e6tevr+HDh2v9+vWaPn26QkND1blzZ93ophtnZ8d+JeHq6nrT/m+//VbvvvvuDftdXFy0cOFCGYahf//73w7VAAB3EqEMAFAszZs3T25ublq/fr0++ugjffbZZ4qPj5eXl5fDx+zcubM+/PBDLV68WEeOHFGdOnW0Zs2amwaIwuTf//63wsPD1bFjR7v2Q4cOqW/fvmrWrJnOnDmj+Ph4/fe//1VYWJiWLl2q+fPn53g8Jycnh+ooWbLkDfumTp2qbt263TAIXufh4aFPP/1UX3zxhQ4ePOhQHQBwpxDKAADFUkJCgsqXL283K5Oft35WrlxZX331lSRp5syZSkpKypfjFpRt27Zp586dGjZsWLa+999/X5K0YMEClS9fXtK10BMRESFJWrduXY7HvH4t586da7u2N3uNHDnypjW+//776t+/v3r27KmWLVve8pxCQ0MVGBio6dOn33JbADAToQwAUCzdiXWuGjVqpAceeECpqalau3ZtgY+XFz/++KPq1aunevXqZesbNWqUNmzYIF9fX7v260HzVrcbhoWF6dChQ7d8vfrqqzc9ztmzZ/X555/riy++kIuLS67Oq0ePHvrhhx9ytS0AmIVQBgDFQFZWlj755BPVq1dPpUqVUqVKldS3b18lJCTYbTdnzhxZLBbNmTMn2zGuL2Zx8uRJW9v69etlsVhsMyaLFi1S27ZtVb58ee3ZsyfbMX766Se1adNGFSpUkIeHhxo2bKiZM2fm+fwuXbqkQYMGqWrVqrJarbrvvvs0atQopaam2m1XrVo126zM77//rt9//91upian886r66v/7d+/3679119/1WOPPaaKFSvKw8NDDRo00IwZM+zCYkxMjCwWi7p06ZLtuKdOnVKJEiXUokWLfKlz586dat26dY59/v7+atq0qV1bZmamIiMjJUlPPvnkTY/t5eWlWrVq3fJ1fRbuRiZOnKi+ffvexllJrVu31qlTp3Tu3Lnb2g8A7iSeUwYAd7GhQ4fecpusrCx17dpV3333nQICAtS3b18dPXpUs2fP1vLly7Vx40bVrFkzz7W8+OKLmjVrlvz9/RUQEKDSpUvb9S9btkydOnVSuXLl1KVLF7m5uemXX37RSy+9pJSUFA0YMMChcc+fP69WrVopLi5OrVq1UlhYmDZu3KgRI0bo559/1urVq20zOf3799fFixclXfttkiS99tprtmMFBgY6VMPNXF8S/vz587a2VatWqUOHDnJ3d1fXrl3l5uamtWvX6uWXX9Zff/2lN998U5LUqlUr1ahRQytWrNClS5fk7e1tO8b1hSx69+6dL3WePn1abdq0ueV2R48e1fLly/Xll19q7969Gjp0qEJCQvKlhltx5DdqlStXlnQtxPr4+OR3SQCQLwhlAHAXGzt27C23mTFjhr777js9+uij+uGHH1SqVClJ137n9NJLL+m5557T1q1b81TH119/rcuXL+unn3664b+gz5kzR4ZhaOnSpWrVqpUkKS0tTQ0bNtT69esdDmWvvfaa4uLiNGzYMI0aNUrStVmc559/Xt98841GjhypcePGSZIt7EjSN998I0kaM2aMQ+Pm1vVA+PcVGEePHq2MjAxFR0erSZMmkqSrV6/K399fM2bMsKuzV69eGj58uJYsWWI3S7RgwQK5urrq6aefzpc6U1NTVbZs2Vtut3TpUr311luSpBo1auipp5664bZXr17Nl9ry4vo5OfKoAwC4U7h9EQDuYjk96+mfZs+eLUn6+OOPbYFMkvr166fGjRtr27ZtOnDgQJ7qOH78uKKiom46Y3J9xmjbtm22Oq1Wqw4ePKilS5c6NO7ly5f17bff6p577rFboMLJyUmTJ0+Ws7Oz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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(hours, click_counts, width=0.5)\n",
    "plt.ylabel('Number of Clicks', fontdict={'size': 16})\n",
    "plt.xlabel('Hours of Day (3月1)', fontdict={'size': 16})\n",
    "plt.xticks(size=12)\n",
    "plt.yticks(size=12)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.StrMethodFormatter('{x:.0f}'))\n",
    "plt.grid(axis='y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "918b6d012b0f14c4",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Table 4 Orders--订单"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "e39ac20d3dc17e0b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:05:39.616740400Z",
     "start_time": "2024-02-29T05:05:38.807789100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>order_ID</th>\n",
       "      <th>user_ID</th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>order_date</th>\n",
       "      <th>order_time</th>\n",
       "      <th>quantity</th>\n",
       "      <th>type</th>\n",
       "      <th>promise</th>\n",
       "      <th>original_unit_price</th>\n",
       "      <th>final_unit_price</th>\n",
       "      <th>direct_discount_per_unit</th>\n",
       "      <th>quantity_discount_per_unit</th>\n",
       "      <th>bundle_discount_per_unit</th>\n",
       "      <th>coupon_discount_per_unit</th>\n",
       "      <th>gift_item</th>\n",
       "      <th>dc_ori</th>\n",
       "      <th>dc_des</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>d0cf5cc6db</td>\n",
       "      <td>0abe9ef2ce</td>\n",
       "      <td>581d5b54c1</td>\n",
       "      <td>2018-03-01</td>\n",
       "      <td>2018-03-01 17:14:25.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>-</td>\n",
       "      <td>89.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7444318d01</td>\n",
       "      <td>33a9e56257</td>\n",
       "      <td>067b673f2b</td>\n",
       "      <td>2018-03-01</td>\n",
       "      <td>2018-03-01 11:10:40.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>99.9</td>\n",
       "      <td>53.9</td>\n",
       "      <td>5.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>28</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>f973b01694</td>\n",
       "      <td>4ea3cf408f</td>\n",
       "      <td>623d0a582a</td>\n",
       "      <td>2018-03-01</td>\n",
       "      <td>2018-03-01 09:13:26.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>78.0</td>\n",
       "      <td>58.5</td>\n",
       "      <td>19.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>28</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8c1cec8d4b</td>\n",
       "      <td>b87cb736cb</td>\n",
       "      <td>fc5289b139</td>\n",
       "      <td>2018-03-01</td>\n",
       "      <td>2018-03-01 21:29:50.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>61.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>d43a33c38a</td>\n",
       "      <td>4829223b6f</td>\n",
       "      <td>623d0a582a</td>\n",
       "      <td>2018-03-01</td>\n",
       "      <td>2018-03-01 19:13:37.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>78.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549984</th>\n",
       "      <td>3ad06b9fbe</td>\n",
       "      <td>a27b3ed4d4</td>\n",
       "      <td>a9109972d1</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>2018-03-31 01:22:47.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>-</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549985</th>\n",
       "      <td>c9d77a7ed0</td>\n",
       "      <td>18f92434cd</td>\n",
       "      <td>7f53769d3f</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>2018-03-31 08:55:57.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>118.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549986</th>\n",
       "      <td>b9ad79338f</td>\n",
       "      <td>b5caf8a580</td>\n",
       "      <td>8dc4a01dec</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>2018-03-31 13:31:01.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>78.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549987</th>\n",
       "      <td>be3a9414b1</td>\n",
       "      <td>20ba6655f3</td>\n",
       "      <td>2dd6b818ec</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>2018-03-31 12:51:18.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>-</td>\n",
       "      <td>189.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>549988</th>\n",
       "      <td>02d31f05c9</td>\n",
       "      <td>f260895cbe</td>\n",
       "      <td>10d369ef96</td>\n",
       "      <td>2018-03-31</td>\n",
       "      <td>2018-03-31 18:21:16.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>68.0</td>\n",
       "      <td>49.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>549989 rows × 17 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          order_ID     user_ID      sku_ID  order_date             order_time  \\\n",
       "0       d0cf5cc6db  0abe9ef2ce  581d5b54c1  2018-03-01  2018-03-01 17:14:25.0   \n",
       "1       7444318d01  33a9e56257  067b673f2b  2018-03-01  2018-03-01 11:10:40.0   \n",
       "2       f973b01694  4ea3cf408f  623d0a582a  2018-03-01  2018-03-01 09:13:26.0   \n",
       "3       8c1cec8d4b  b87cb736cb  fc5289b139  2018-03-01  2018-03-01 21:29:50.0   \n",
       "4       d43a33c38a  4829223b6f  623d0a582a  2018-03-01  2018-03-01 19:13:37.0   \n",
       "...            ...         ...         ...         ...                    ...   \n",
       "549984  3ad06b9fbe  a27b3ed4d4  a9109972d1  2018-03-31  2018-03-31 01:22:47.0   \n",
       "549985  c9d77a7ed0  18f92434cd  7f53769d3f  2018-03-31  2018-03-31 08:55:57.0   \n",
       "549986  b9ad79338f  b5caf8a580  8dc4a01dec  2018-03-31  2018-03-31 13:31:01.0   \n",
       "549987  be3a9414b1  20ba6655f3  2dd6b818ec  2018-03-31  2018-03-31 12:51:18.0   \n",
       "549988  02d31f05c9  f260895cbe  10d369ef96  2018-03-31  2018-03-31 18:21:16.0   \n",
       "\n",
       "        quantity  type promise  original_unit_price  final_unit_price  \\\n",
       "0              1     2       -                 89.0              79.0   \n",
       "1              1     1       2                 99.9              53.9   \n",
       "2              1     1       2                 78.0              58.5   \n",
       "3              1     1       2                 61.0              35.0   \n",
       "4              1     1       1                 78.0              53.0   \n",
       "...          ...   ...     ...                  ...               ...   \n",
       "549984         1     2       -                  0.0              -1.0   \n",
       "549985         1     1       3                118.0              55.0   \n",
       "549986         1     1       2                 78.0              78.0   \n",
       "549987         1     2       -                189.0              78.0   \n",
       "549988         1     2       4                 68.0              49.0   \n",
       "\n",
       "        direct_discount_per_unit  quantity_discount_per_unit  \\\n",
       "0                            0.0                        10.0   \n",
       "1                            5.0                        41.0   \n",
       "2                           19.5                         0.0   \n",
       "3                            0.0                        26.0   \n",
       "4                           19.0                         0.0   \n",
       "...                          ...                         ...   \n",
       "549984                       0.0                         0.0   \n",
       "549985                      63.0                         0.0   \n",
       "549986                       0.0                         0.0   \n",
       "549987                     111.0                         0.0   \n",
       "549988                      19.0                         0.0   \n",
       "\n",
       "        bundle_discount_per_unit  coupon_discount_per_unit  gift_item  dc_ori  \\\n",
       "0                            0.0                       0.0          0       4   \n",
       "1                            0.0                       0.0          0      28   \n",
       "2                            0.0                       0.0          0      28   \n",
       "3                            0.0                       0.0          0       4   \n",
       "4                            0.0                       6.0          0       3   \n",
       "...                          ...                       ...        ...     ...   \n",
       "549984                       0.0                       1.0          1       2   \n",
       "549985                       0.0                       0.0          0      59   \n",
       "549986                       0.0                       0.0          0       2   \n",
       "549987                       0.0                       0.0          0       4   \n",
       "549988                       0.0                       0.0          0       4   \n",
       "\n",
       "        dc_des  \n",
       "0           28  \n",
       "1           28  \n",
       "2           28  \n",
       "3           28  \n",
       "4           16  \n",
       "...        ...  \n",
       "549984       2  \n",
       "549985       2  \n",
       "549986       2  \n",
       "549987      28  \n",
       "549988      28  \n",
       "\n",
       "[549989 rows x 17 columns]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 'orders' table    订单数据\n",
    "orders = pd.read_csv('./JD_data/JD_order_data.csv')\n",
    "orders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "f39ccc97-690b-41d6-b9e3-5b0923c40b73",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "order_ID                      0\n",
       "user_ID                       0\n",
       "sku_ID                        0\n",
       "order_date                    0\n",
       "order_time                    0\n",
       "quantity                      0\n",
       "type                          0\n",
       "promise                       0\n",
       "original_unit_price           0\n",
       "final_unit_price              0\n",
       "direct_discount_per_unit      0\n",
       "quantity_discount_per_unit    0\n",
       "bundle_discount_per_unit      0\n",
       "coupon_discount_per_unit      0\n",
       "gift_item                     0\n",
       "dc_ori                        0\n",
       "dc_des                        0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "orders.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "5d1406e4-df8e-4088-8b21-dbb17ef98f0e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "order_ID\n",
      "f9bc89251f    39\n",
      "ab3619b901    18\n",
      "a362b61198    15\n",
      "27d131f91a    15\n",
      "098115e76c    14\n",
      "              ..\n",
      "6980a9b59a     1\n",
      "29b961e451     1\n",
      "e6acc57d2a     1\n",
      "93b926b272     1\n",
      "02d31f05c9     1\n",
      "Name: count, Length: 486928, dtype: int64\n",
      "user_ID\n",
      "2d25359f9b    605\n",
      "c1c8327987    534\n",
      "7ea01030cb    169\n",
      "1a75247e23    159\n",
      "6f6e75e6d4    155\n",
      "             ... \n",
      "088cf2f0a8      1\n",
      "22129a5757      1\n",
      "3d8aef6cdd      1\n",
      "2f255cf084      1\n",
      "f260895cbe      1\n",
      "Name: count, Length: 454897, dtype: int64\n",
      "sku_ID\n",
      "068f4481b3    23655\n",
      "3c79df1d80    14463\n",
      "a9109972d1    12176\n",
      "623d0a582a    10175\n",
      "8dc4a01dec     9891\n",
      "              ...  \n",
      "8bed293593        1\n",
      "3dbc953e04        1\n",
      "7c9c2a543d        1\n",
      "b2a026862e        1\n",
      "72bea8e444        1\n",
      "Name: count, Length: 9159, dtype: int64\n",
      "order_date\n",
      "2018-03-01    35931\n",
      "2018-03-08    29619\n",
      "2018-03-28    24485\n",
      "2018-03-07    23075\n",
      "2018-03-27    21804\n",
      "2018-03-29    21204\n",
      "2018-03-31    20189\n",
      "2018-03-30    19837\n",
      "2018-03-25    19314\n",
      "2018-03-26    18968\n",
      "2018-03-09    18966\n",
      "2018-03-05    18627\n",
      "2018-03-06    18381\n",
      "2018-03-03    18203\n",
      "2018-03-04    18182\n",
      "2018-03-23    16826\n",
      "2018-03-02    16180\n",
      "2018-03-24    16098\n",
      "2018-03-13    15247\n",
      "2018-03-22    15121\n",
      "2018-03-21    14654\n",
      "2018-03-14    14614\n",
      "2018-03-15    13956\n",
      "2018-03-12    13852\n",
      "2018-03-16    13581\n",
      "2018-03-19    13243\n",
      "2018-03-20    13042\n",
      "2018-03-17    12161\n",
      "2018-03-11    11886\n",
      "2018-03-10    11475\n",
      "2018-03-18    11268\n",
      "Name: count, dtype: int64\n",
      "order_time\n",
      "2018-03-06 21:05:01.0    39\n",
      "2018-03-10 12:54:14.0    19\n",
      "2018-03-01 22:29:36.0    16\n",
      "2018-03-01 12:51:15.0    16\n",
      "2018-03-27 00:29:42.0    15\n",
      "                         ..\n",
      "2018-03-11 11:38:55.0     1\n",
      "2018-03-11 21:57:08.0     1\n",
      "2018-03-11 22:11:42.0     1\n",
      "2018-03-11 19:02:27.0     1\n",
      "2018-03-31 18:21:16.0     1\n",
      "Name: count, Length: 423546, dtype: int64\n",
      "quantity\n",
      "1     478097\n",
      "2      56828\n",
      "3       8875\n",
      "4       2855\n",
      "5       1338\n",
      "       ...  \n",
      "60         1\n",
      "33         1\n",
      "42         1\n",
      "84         1\n",
      "41         1\n",
      "Name: count, Length: 89, dtype: int64\n",
      "type\n",
      "1    275468\n",
      "2    274521\n",
      "Name: count, dtype: int64\n",
      "promise\n",
      "-    208583\n",
      "1    157509\n",
      "2    109990\n",
      "3     33176\n",
      "4     23882\n",
      "5     10054\n",
      "6      3039\n",
      "8      2374\n",
      "7      1382\n",
      "Name: count, dtype: int64\n",
      "original_unit_price\n",
      "0.00       94600\n",
      "78.00      34397\n",
      "298.00     26158\n",
      "69.00      24795\n",
      "89.00      18013\n",
      "           ...  \n",
      "327.00         1\n",
      "48.23          1\n",
      "7514.00        1\n",
      "139.20         1\n",
      "868.00         1\n",
      "Name: count, Length: 822, dtype: int64\n",
      "final_unit_price\n",
      "0.000000      86069\n",
      "69.000000     18706\n",
      "59.000000     18601\n",
      "49.000000     16420\n",
      "39.000000     10860\n",
      "              ...  \n",
      "141.700000        1\n",
      "109.333333        1\n",
      "6.171429          1\n",
      "13.400000         1\n",
      "216.333333        1\n",
      "Name: count, Length: 6437, dtype: int64\n",
      "direct_discount_per_unit\n",
      "0.00     240286\n",
      "20.00     28131\n",
      "10.00     23210\n",
      "4.00      19156\n",
      "30.00     15517\n",
      "          ...  \n",
      "8.80          1\n",
      "0.88          1\n",
      "17.57         1\n",
      "16.40         1\n",
      "21.90         1\n",
      "Name: count, Length: 716, dtype: int64\n",
      "quantity_discount_per_unit\n",
      "0.000000     420063\n",
      "50.000000      5286\n",
      "10.000000      4712\n",
      "33.000000      3846\n",
      "20.000000      3248\n",
      "              ...  \n",
      "11.125000         1\n",
      "9.830000          1\n",
      "12.955000         1\n",
      "16.840000         1\n",
      "64.666667         1\n",
      "Name: count, Length: 2679, dtype: int64\n",
      "bundle_discount_per_unit\n",
      "0.0      541705\n",
      "13.5        700\n",
      "23.5        646\n",
      "33.0        586\n",
      "40.0        505\n",
      "          ...  \n",
      "6.3           1\n",
      "47.0          1\n",
      "111.0         1\n",
      "48.0          1\n",
      "119.0         1\n",
      "Name: count, Length: 101, dtype: int64\n",
      "coupon_discount_per_unit\n",
      "0.00      434763\n",
      "5.00       15267\n",
      "2.00       10805\n",
      "3.00       10263\n",
      "1.00        9214\n",
      "           ...  \n",
      "40.60          1\n",
      "31.70          1\n",
      "34.60          1\n",
      "0.82           1\n",
      "178.00         1\n",
      "Name: count, Length: 755, dtype: int64\n",
      "gift_item\n",
      "0    455383\n",
      "1     94606\n",
      "Name: count, dtype: int64\n",
      "dc_ori\n",
      "5     111112\n",
      "9      87617\n",
      "2      79335\n",
      "4      58334\n",
      "7      52297\n",
      "24     35905\n",
      "10     25096\n",
      "3      14084\n",
      "59      7573\n",
      "20      5657\n",
      "31      5140\n",
      "58      5105\n",
      "26      4849\n",
      "6       4452\n",
      "28      4370\n",
      "42      3269\n",
      "43      2598\n",
      "33      2512\n",
      "39      2371\n",
      "27      2281\n",
      "44      2278\n",
      "36      2229\n",
      "56      2068\n",
      "53      2031\n",
      "65      1955\n",
      "41      1945\n",
      "50      1896\n",
      "32      1880\n",
      "46      1688\n",
      "34      1447\n",
      "45      1409\n",
      "40      1351\n",
      "35      1252\n",
      "37      1170\n",
      "55      1124\n",
      "25      1014\n",
      "64       991\n",
      "63       979\n",
      "47       809\n",
      "52       783\n",
      "38       715\n",
      "61       678\n",
      "51       667\n",
      "1        506\n",
      "67       472\n",
      "54       436\n",
      "57       356\n",
      "15       302\n",
      "8        273\n",
      "21       266\n",
      "13       253\n",
      "19       248\n",
      "11       215\n",
      "14       138\n",
      "66       130\n",
      "12        78\n",
      "Name: count, dtype: int64\n",
      "dc_des\n",
      "5     54541\n",
      "9     46889\n",
      "2     43772\n",
      "4     38665\n",
      "24    25038\n",
      "27    20557\n",
      "20    16018\n",
      "7     15714\n",
      "17    15383\n",
      "16    15345\n",
      "31    14998\n",
      "26    14769\n",
      "6     13796\n",
      "28    11940\n",
      "10    11387\n",
      "42    11247\n",
      "33    11242\n",
      "39    10076\n",
      "43     8675\n",
      "36     8386\n",
      "32     7641\n",
      "46     7451\n",
      "44     7267\n",
      "37     6948\n",
      "53     6810\n",
      "41     6595\n",
      "45     6387\n",
      "34     6343\n",
      "35     6338\n",
      "50     5614\n",
      "64     5453\n",
      "47     5044\n",
      "25     4771\n",
      "55     4118\n",
      "40     4094\n",
      "60     3691\n",
      "3      3369\n",
      "38     3325\n",
      "1      3021\n",
      "61     2916\n",
      "15     2869\n",
      "52     2768\n",
      "51     2720\n",
      "67     2631\n",
      "30     2598\n",
      "54     2233\n",
      "18     1819\n",
      "49     1709\n",
      "8      1648\n",
      "19     1648\n",
      "13     1582\n",
      "11     1509\n",
      "29     1415\n",
      "62     1289\n",
      "48     1246\n",
      "21     1245\n",
      "22     1161\n",
      "14      861\n",
      "12      778\n",
      "23      626\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in orders.columns:\n",
    "    print(orders[i].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9bba8f50f1ebaaee",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## promise 送达天数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "940550273d29ad0f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:29:44.147002600Z",
     "start_time": "2024-02-29T05:29:44.111715Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "promise\n",
       "1    157509\n",
       "2    109990\n",
       "3     33176\n",
       "4     23882\n",
       "5     10054\n",
       "6      3039\n",
       "8      2374\n",
       "7      1382\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "orders['promise'] = orders['promise'].replace('-', np.nan)\n",
    "counts = orders['promise'].value_counts(dropna=True)\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "59dfd3d5-41ce-4a64-937c-ab4c80c21109",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10054"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts[4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "b64c51d8efdcadfc",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:33:05.986664100Z",
     "start_time": "2024-02-29T05:33:05.929154900Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "promise\n",
       "1    157509\n",
       "2    109990\n",
       "3     33176\n",
       "4     23882\n",
       "5     16849\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "others_count = counts[4] + counts[5] + counts[6] + counts[7]\n",
    "counts[4] = others_count\n",
    "counts = counts[0:5]\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "ed0e404e18c20a45",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:34:35.708124400Z",
     "start_time": "2024-02-29T05:34:35.667981400Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "proportions = counts / counts.sum()\n",
    "promise = counts.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "ebbc8b333122d36d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T05:46:02.853231300Z",
     "start_time": "2024-02-29T05:46:02.773328600Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plt.bar(promise, proportions * 100, width=0.4)\n",
    "plt.ylabel('Percentage of Orders', fontdict={'size': 16})\n",
    "plt.xlabel('Promise in Days', fontdict={'size': 16})\n",
    "plt.xticks([0, 1, 2, 3, 4], ['1', '2', '3', '4', 'others'], size=13)\n",
    "plt.yticks(size=13)\n",
    "plt.gca().yaxis.set_major_formatter(plt.matplotlib.ticker.PercentFormatter())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7af364fd04dd61f",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 订单日期"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "cf9e1abe2dd6df8d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:08:36.631924900Z",
     "start_time": "2024-02-29T07:08:36.563232700Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "type\n",
       "1    275468\n",
       "2    274521\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "types = orders['type'].value_counts(dropna=False)\n",
    "types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "e2310adeccc47f1c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:08:37.826630200Z",
     "start_time": "2024-02-29T07:08:37.739876200Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "counts1 = orders[orders['type'] == 1]['order_date'].value_counts(dropna=False)\n",
    "counts2 = orders[orders['type'] == 2]['order_date'].value_counts(dropna=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "8e95d8c9a3218264",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:08:38.349566Z",
     "start_time": "2024-02-29T07:08:38.268387900Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "order_date\n",
       "2018-03-01    27552\n",
       "2018-03-02     9702\n",
       "2018-03-03    11723\n",
       "2018-03-04    11464\n",
       "2018-03-05    11043\n",
       "2018-03-06    10122\n",
       "2018-03-07    13545\n",
       "2018-03-08    17671\n",
       "2018-03-09    10377\n",
       "2018-03-10     3931\n",
       "2018-03-11     4649\n",
       "2018-03-12     5169\n",
       "2018-03-13     6086\n",
       "2018-03-14     5594\n",
       "2018-03-15     5580\n",
       "2018-03-16     5776\n",
       "2018-03-17     4945\n",
       "2018-03-18     4428\n",
       "2018-03-19     5269\n",
       "2018-03-20     5127\n",
       "2018-03-21     6638\n",
       "2018-03-22     6531\n",
       "2018-03-23     7823\n",
       "2018-03-24     6988\n",
       "2018-03-25     8918\n",
       "2018-03-26     7999\n",
       "2018-03-27    10000\n",
       "2018-03-28    11292\n",
       "2018-03-29     9494\n",
       "2018-03-30    10305\n",
       "2018-03-31     9727\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts2.sort_index(inplace=True)\n",
    "counts1.sort_index(inplace=True)\n",
    "counts1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "54f25356d45adc0",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:08:39.200067300Z",
     "start_time": "2024-02-29T07:08:39.153541100Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "order_date\n",
       "2018-03-01     8379\n",
       "2018-03-02     6478\n",
       "2018-03-03     6480\n",
       "2018-03-04     6718\n",
       "2018-03-05     7584\n",
       "2018-03-06     8259\n",
       "2018-03-07     9530\n",
       "2018-03-08    11948\n",
       "2018-03-09     8589\n",
       "2018-03-10     7544\n",
       "2018-03-11     7237\n",
       "2018-03-12     8683\n",
       "2018-03-13     9161\n",
       "2018-03-14     9020\n",
       "2018-03-15     8376\n",
       "2018-03-16     7805\n",
       "2018-03-17     7216\n",
       "2018-03-18     6840\n",
       "2018-03-19     7974\n",
       "2018-03-20     7915\n",
       "2018-03-21     8016\n",
       "2018-03-22     8590\n",
       "2018-03-23     9003\n",
       "2018-03-24     9110\n",
       "2018-03-25    10396\n",
       "2018-03-26    10969\n",
       "2018-03-27    11804\n",
       "2018-03-28    13193\n",
       "2018-03-29    11710\n",
       "2018-03-30     9532\n",
       "2018-03-31    10462\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "960e4f11746565f1",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:08:39.919660800Z",
     "start_time": "2024-02-29T07:08:39.878204800Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "dates = counts1.index\n",
    "x = np.arange(len(counts1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "d3cde87aeaac30cd",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T07:21:37.421137300Z",
     "start_time": "2024-02-29T07:21:37.278872300Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABAQAAAJNCAYAAACm4KdxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABs+klEQVR4nO3dd3hUZf7+8XsyCenFkNAjIYSy0hQBWZSO0ouggIi0YEEBscACUgIIKCiWRVEQEAFdehMFXZqE3r6IFKmhK4RAEhIYUs7vD37MOiZACJN63q/ryrXkzGfOfE48TzZzz3OeYzEMwxAAAAAAADAVl9xuAAAAAAAA5DwCAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATcs3tBgq6tLQ0nTt3Tr6+vrJYLLndDgAAAACggDMMQwkJCSpRooRcXG4/D4BAIJudO3dOISEhud0GAAAAAMBkTp8+rVKlSt32cQKBbObr6yvp5n8IPz+/XO4GAAAAAFDQxcfHKyQkxP5+9HYIBLLZrcsE/Pz8CAQAAAAAADnmbpets6ggAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAlx20EAAAAAyIeSk5OVmpqa220gB1itVrm5uTl9vwQCAAAAAJCPxMfHKyYmRjabLbdbQQ5yd3dXUFCQ/Pz8nLZPAgEAAAAAyCfi4+N19uxZ+fj4KCgoSG5ubrJYLLndFrKRYRhKTk5WXFyczp49K0lOCwUIBAAAAAAgn4iJiZGPj49KlSpFEGAinp6e8vX11ZkzZxQTE+O0QIBFBQEAAAAgH0hOTpbNZpO/vz9hgAlZLBb5+/vLZrMpOTnZKfskEAAAAACAfODWAoLZsbgc8odb/+2dtZgkgQAAAAAA5CPMDjAvZ/+3JxAAAAAAAMCECAQAAAAAADAh7jIAAAAAAAVE6OCVud3CbUW/1zK3W8DfMEMAAAAAAJDnRUdHy2Kx3ParQYMGud3iPUlLS1ObNm3Uo0ePXOuBGQIAAAAAgDwvODhYs2fPliTZbDb17t1bdevW1UsvvSRJKlq0aG62d08Mw1D//v21YsUKde/ePdf6IBAAAAAAAOR53t7e6tq1qyTp6tWr6t27t8LCwuzb8ouEhAR17dpVv/zyi3x8fHK1FwIB2GX2eiOu/QEAAACArFm8eLGOHDmiTZs2qUWLFrnaC2sIAAAAAAAKjPnz58tisWjRokUO2w8cOCCLxaIxY8ZIkiIjI2WxWLRs2TJVqVJF7u7uqlChgr7++ut0+4yJidHLL7+s4sWLy8fHR7Vq1dLy5cuz1F+DBg20Z88ePfTQQ1l6vjMRCAAAAAAACox27dqpcOHC6d7Yz549W1arVT179nTY/txzz+nxxx/XBx98oICAAPXs2VMzZsywPx4XF6fHH39cq1at0oABAzRp0iT5+/urbdu2mj9//j33V7p0abm7u2fp2JyNQAAAAAAAUGAUKlRIL7zwglatWqULFy5IurmI37fffqtmzZqpVKlSDvUvv/yyvvjiC/Xr10/r169XsWLFNHr0aPvjH3/8sY4dO6aFCxcqIiJC7du31+zZsxUcHKyPP/44Jw/N6QgEAAAAAAAFSkREhFJSUjRnzhxJ0oYNG3Tq1Cn17t07Xe1fb/vn6empVq1a6eTJk/rjjz8kSatXr1Zqaqpq1aql4OBgBQcHq3jx4rp48aJ+++23HDme7MKiggAAAACAAqVy5cp67LHHNGvWLL355puaM2eOihUrplatWqWrLVasmMP3QUFBkm5eKlCsWDFdvHhRYWFh+vLLL9M912KxZM8B5BACAQAAAABAgdO7d2+9+OKL2rJlixYuXKg+ffrI1TX9W+Bz586paNGi9u///PNPSdIDDzwg6WZAcPz4cTVp0sTheUePHlVMTIzS0tLk4pI/J9/nz64BAAAAALiDTp06ydvbW927d1d8fLwiIiIyrPvrAoJJSUlauXKlypUrpyJFikiSmjZtqgsXLuinn36y16WkpKhly5Z6/vnn820YIDFDAAAAAABQAPn6+qpTp06aMWOGGjZsqPDw8AzrZs2apRs3bqhy5cqaPXu2Lly44LBY4BtvvKHvvvtO7dq1U9++fRUeHq7Fixfr8OHD9jUK8isCAQAAAAAoIKLfa5nbLeQpHTp00IwZMzJcTPCWhQsXavDgwfr6669VpkwZzZ07V88995z9cX9/f23atElDhw7VN998o4SEBFWqVElLlixRu3btcuAosg+BAAAAAAAgX/Hx8ZFhGLd9fN68ebp69armzp2rokWLqkOHDretrVWrlnbv3n3H1wsKCtLUqVM1derULPeckejoaKfu717l34sdAAAAAADIwM6dO/XKK6/o7Nmzmj9/vtzd3XO7pTyJQAAAAAAAUKBMnDhRycnJ+v3331WvXr0MayIjI2UYhgICAnK2uTyEQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMyDW3GwAAAAAAOEmkf253cHuRcbndAf6GGQIAAAAAgDwvOjpaFovltl8NGjTI7RYzJTU1VePGjVNYWJjc3Nzk7++v7t276/LlyzneCzMEAAAAAAB5XnBwsGbPni1Jstls6t27t+rWrauXXnpJklS0aNHcbC/T3njjDU2ePFnPPvushgwZoh07dmjatGmKjo7Whg0bcrQXAgEAAAAAQJ7n7e2trl27SpKuXr2q3r17KywszL4tP9i/f78mT56sDz/8UG+88YYk6cUXX5TNZtM333yj3377TZUrV86xfrhkAAAAAACAHHDrcoHXX3/dYfvDDz8sSfrjjz9ytB8CAQAAAABAgTF//nxZLBYtWrTIYfuBAwdksVg0ZswYSVJkZKQsFouWLVumKlWqyN3dXRUqVNDXX3+dbp8xMTF6+eWXVbx4cfn4+KhWrVpavnz5PfdWtWpVDR48WC4ujm/Ft23bJovFoqpVq97zPu8HgQAAAAAAoMBo166dChcunO6N/ezZs2W1WtWzZ0+H7c8995wef/xxffDBBwoICFDPnj01Y8YM++NxcXF6/PHHtWrVKg0YMECTJk2Sv7+/2rZtq/nz5993v8eOHdPixYvVpk0bFSlS5L73dy8IBAAAAAAABUahQoX0wgsvaNWqVbpw4YIkyTAMffvtt2rWrJlKlSrlUP/yyy/riy++UL9+/bR+/XoVK1ZMo0ePtj/+8ccf69ixY1q4cKEiIiLUvn17zZ49W8HBwfr444/vq9e0tDT17t1bLi4uev/99+9rX1lBIAAAAAAAKFAiIiKUkpKiOXPmSJI2bNigU6dOqXfv3ulqe/ToYf+3p6enWrVqpZMnT9qv51+9erVSU1NVq1YtBQcHKzg4WMWLF9fFixf122+/3Vefo0eP1vr16zVx4kRVqFDhvvaVFdxlAAAAAABQoFSuXFmPPfaYZs2apTfffFNz5sxRsWLF1KpVq3S1xYoVc/g+KChI0s1LBYoVK6aLFy8qLCxMX375ZbrnWiyWLPe4YsUKjR49Ws8//7z69euX5f3cDwIBAAAAAECB07t3b7344ovasmWLFi5cqD59+sjVNf1b4HPnzqlo0aL27//8809J0gMPPCDpZkBw/PhxNWnSxOF5R48eVUxMjNLS0tItEng3u3fvVpcuXVSrVi199dVX93poTsMlAwAAAACAAqdTp07y9vZW9+7dFR8fr4iIiAzr/rqAYFJSklauXKly5crZF/hr2rSpLly4oJ9++slel5KSopYtW+r555+/5zBg//79atq0qYKCgrRs2TJ5eHhk4eicgxkCAAAAAIACx9fXV506ddKMGTPUsGFDhYeHZ1g3a9Ys3bhxQ5UrV9bs2bN14cIFh8UC33jjDX333Xdq166d+vbtq/DwcC1evFiHDx+2r1GQWSkpKXr66afttzH8+eefHR6vWrVqjt56kEAAAAAAAFAgdejQQTNmzMhwMcFbFi5cqMGDB+vrr79WmTJlNHfuXD333HP2x/39/bVp0yYNHTpU33zzjRISElSpUiUtWbJE7dq1u6d+9u3bpyNHjkiSxo4dm+7xkSNHEggAAAAAALIgMi63O8gRPj4+Mgzjto/PmzdPV69e1dy5c1W0aFF16NDhtrW1atXS7t277/h6QUFBmjp1qqZOnZrlniXpkUceuWPfOS1PrSGQlpamMWPGKCQkRG5ubipVqpSmTJlif/zcuXOyWCzpvv6e9uzdu1cNGjSQt7e3HnnkEe3cuTPda0VHR6t169by8/NT+fLltWrVqnQ1MTEx6tq1qwIDAxUSEqJvvvnG+QcNAAAAAHCqnTt36pVXXtHZs2c1f/58ubu753ZLeVKemiEQGRmpsWPHqlu3bqpTp46+/fZbvfrqqwoKCtKzzz6rXbt2yWq1asaMGQ4LN/z1WpDo6Gg1atRIPj4+Gj16tKKiotSsWTMdOnTI4fYRjRs31uXLlzV06FAdOXJE7dq10969e+33fry1SMTevXs1aNAgXbt2TT179lRISIgaNmyYsz8YAAAAAECmTZw4URMnTrxjTWRkpCIjI3OmoTwqzwQCFy9e1IQJEzRp0iS9/vrrkqQXXnhBoaGhmj59up599lnt3LlTFStWVLdu3W67n8jISCUlJWn79u0qW7asBgwYoBo1amj8+PH68MMPJUkfffSRjh8/rqioKD3++OP21x86dKgWLVokSZozZ462b9+uuXPnqkuXLpIkm82mt99+W7t27crOHwUAAAAAANkuz1wykJiYqJEjR+q1116zb/Pw8FB4eLguXrwo6ea0jzp16tx2H4ZhaMWKFWrXrp3Kli0rSbJarerRo4eWLVtmr1u2bJlq165tDwMkKSIiQqtXr5bNZrPXlChRwmExiYiICO3evVtnzpxxzkEDAAAAAJBL8kwgEBoaqiFDhsjV9X+TFpKTk7Vv3z5VqlRJ0s1AYPfu3SpdurQ8PT1Vu3Zt/fjjj/b68+fPKzY2Vk888YTDvqtWrapjx44pMTFR0s37PmZUk5iYqKNHj9pr6tSpI4vFYq+pVKmSrFar9u7de9vjsNlsio+Pd/gCAAAAACCvyTOBQEa++uorxcfHq1u3boqOjtaFCxd05coV9enTRxMmTNC1a9fUqlUrbd68WZJ05coVSTfDhb8KDg6WJJ0+fVpJSUlKTk6+Y82tff29xtXVVQEBAfaajIwfP17+/v72r5CQkCwePQAAAACkl5dWqUfOcvZ/+zwbCMTExCgyMlINGzZUkyZNZLVaNXbsWO3YsUODBw9Wv379FBUVpRIlSmjSpEmS/vfD8fLyctiXh4eHJCkhISFTNbf29feaW3W3ajIyZMgQxcXF2b/uFB4AAAAAQGZZrVZJN2dSw5xu/be/dS7crzyzqODf9enTR4mJifb7PIaEhGjo0KEONb6+vmrXrp2+/fZbSf97U//31OTW9zabLVM1t/aVUfpiGIa9JiPu7u7c0gIAAACA07m5ucnd3V1xcXHy9fV1uLwZBZ9hGIqLi5O7u7vc3Nycss88GQhMnTpVCxcu1MyZMx1uKZgRLy8vxcbGKjk5WcWKFZOkdJ/Kx8TESLoZIFitVgUFBd2xRpKKFSuWrsYwDMXGxtprAAAAACAnBQUF6ezZszpz5oz8/f3l5uZGMFDAGYah5ORkxcXF6erVqypZsqTT9p3nAoFt27apf//+6tWrl3r06GHfPnv2bP322296//33Her37dsnPz8/ubm5yc3NTWFhYdqyZYu6d+9ur9m9e7ck2QODqlWrasuWLQ77yahm06ZNDjUHDhzQ9evX7TUAAAAAkJP8/Pwk3fxA8+zZs7ncDXKSu7u7SpYsaT8HnCFPBQJHjx5V69atVblyZX322WcOj8XFxenTTz/VSy+9ZL+lYFRUlFavXq0OHTrY61q3bq3Zs2fr3XffVVBQkKSbYULFihVVtGhRe83AgQN1+PBhlS9f3l7j5+en6tWr22tmzJihdevWqWHDhvYai8Wi+vXrZ+8PAgAAAABuw8/PT35+fkpOTlZqamput4McYLVanXaZwF9ZjDy0ROU///lPbd26VePGjUu3On+bNm1UsWJFWSwWtW/fXgkJCVqwYIHc3d21detW+xv748ePq2rVqqpWrZqGDRumRYsWafr06frkk0/Uv39/STfvIPDQQw/J399f77//vrZu3arx48frjTfesC9QmJKSourVqysmJkYfffSRzpw5oyFDhqhVq1ZavHhxpo8pPj5e/v7+iouLc2qSkx1CB6/MVF30ey2zuRMAAAAAQFZl9n1ongkELl26ZP9EPyOGYejIkSN6/fXXtWHDBnl5ealJkyYaM2ZMunUGfvrpJ3Xt2lUXL16UJEVERGjq1KlycfnfTRV27dqljh076vjx45KkVq1a6T//+Y+8vb3tNcePH9czzzyjPXv2SJJq166tpUuX2mcaZAaBAAAAAAAgJ+W7QMDZrl69qk2bNqlEiRKqUqVKhjU2m01RUVHy9fVVrVq1MqxJTU3V5s2bJUl16tS559s7EAgAAAAAAHJSZt+H5qk1BJzJx8dHTZs2vWONu7u7GjdufMcaq9WqunXrOrM1AAAAAAByncvdSwAAAAAAQEFDIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJpSnAoG0tDSNGTNGISEhcnNzU6lSpTRlyhSHmvXr16tGjRry8vJSvXr1dOzYsXT72bt3rxo0aCBvb2898sgj2rlzZ7qa6OhotW7dWn5+fipfvrxWrVqVriYmJkZdu3ZVYGCgQkJC9M033zjvYAEAAAAAyEV5KhCIjIxUZGSkmjRpos8//1zlypXTq6++qgULFkiSduzYoWbNmslms2ncuHGyWCxq0aKFbDabfR/R0dFq1KiRTpw4odGjRys0NFTNmjVTTEyMvSYuLk6NGzfWpk2bNHToUNWtW1ft2rXT77//bq9JSUlRy5YttXDhQvXt21edO3dWz549tW7dupz7gQAAAAAAkE0shmEYud2EJF28eFEhISF6//339frrr0uSrl+/rtDQUD388MNatWqVGjRooEOHDunAgQMKDAxUYmKiwsPDNXToUPXr10+S1KNHD82bN0+//fabypYtq9TUVNWoUUONGjXShx9+KOlm8DBq1ChFRUXp8ccflyS1adNGbm5uWrRokSTp66+/Vs+ePTV37lx16dJFktS/f39t2rRJu3btyvRxxcfHy9/fX3FxcfLz83Pazys7hA5emam66PdaZnMnAAAAAICsyuz70DwzQyAxMVEjR47Ua6+9Zt/m4eGh8PBwXbx4UZcvX9bGjRvVs2dPBQYGSpK8vb3VuXNnLVu2TJJkGIZWrFihdu3aqWzZspIkq9WqHj162GskadmyZapdu7Y9DJCkiIgIrV692j7bYNmyZSpRooSee+45h5rdu3frzJkz2feDAAAAAAAgB+SZQCA0NFRDhgyRq6urfVtycrL27dunSpUq6eDBg0pLS9MTTzzh8LyqVatq7969kqTz588rNjY2w5pjx44pMTFRkrR///4MaxITE3X06FF7TZ06dWSxWOw1lSpVktVqtb9eRmw2m+Lj4x2+AAAAAADIa/JMIJCRr776SvHx8erWrZuuXLki6WZw8FfBwcGKiYnR9evX71gjSadPn1ZSUpKSk5PvWCNJV65cSVfj6uqqgIAAe01Gxo8fL39/f/tXSEhI5g8YAAAAAIAckmcDgZiYGEVGRqphw4Zq0qSJbi114OXl5VDn4eEhSUpISHBajXTz8oO/19yqu1WTkSFDhiguLs7+dafwAAAAAACA3JLlQODBBx/U4MGD9euvvzqzH7s+ffooMTFRU6dOlfS/N+x/XwPx1vc2m81pNbdeL6P1Fg3DcLirwd+5u7vLz8/P4QsAAAAAgLwmy4GAxWLRhAkT9Mgjj6hKlSp6//33derUKac0NXXqVC1cuFCTJ09WeHi4JKlYsWKSlO4T91u3E/T19c1UjdVqVVBQ0B1rbr3e32sMw1BsbKy9BgAAAACA/CrLgcDJkye1fft2DRw4UDabTUOGDFFYWJjq1aunqVOnKjY2Nkv73bZtm/r3769evXqpR48e9u3h4eHy9PTUli1bHOp3794tT09P+fv7y9vbW2FhYRnWSP8LFapWrZqlmgMHDuj69ev2GgAAAAAA8qv7WkOgRo0aeu+993T48GHt2bNHQ4cOVWxsrPr06aPixYurbdu2WrBggW7cuJGp/R09elStW7dW5cqV9dlnnzk85u7urqeeekozZ87U9evXJd28C8G8efNUv359e13r1q21YMEC+yf+kjR79mxVrFhRRYsWtdesWbNGhw8fdqjx8/NT9erV7TW///671q1b51BjsVgcXg8AAAAAgPzIYmR0ofx9iIqK0qhRo7RmzRr7tuLFi2vx4sV67LHH7vjcf/7zn9q6davGjRuXbnX+rl27avPmzapbt65atWqlPn366PPPP9eKFSu0bNkytWnTRpJ0/PhxVa1aVdWqVdOwYcO0aNEiTZ8+XZ988on69+8v6eYdBB566CH5+/vr/fff19atWzV+/Hi98cYbmjRpkiQpJSVF1atXV0xMjD766COdOXNGQ4YMUatWrbR48eJM/zzi4+Pl7++vuLi4PL+eQOjglZmqi36vZTZ3AgAAAADIqsy+D3VKILB582bNnz9fixYt0rlz5yRJdevW1XPPPady5crp1VdfVaFChe64AOGlS5cUFBR028dvtTlnzhy98sorSkxMlIuLi4YNG6ZRo0Y51P7000/q2rWrLl68KEmKiIjQ1KlT5eLyvwkRu3btUseOHXX8+HFJUqtWrfSf//xH3t7e9prjx4/rmWee0Z49eyRJtWvX1tKlS+0zDTKDQAAAAAAAkJOyPRDYunWr5s+fr4ULF+rs2bMyDEMPP/ywunTpoueee04lS5a01w4cOFCffvrpHVfnvxeXLl3S9u3bVa5cOfuig3939epVbdq0SSVKlFCVKlUyrLHZbIqKipKvr69q1aqVYU1qaqo2b94sSapTp46sVus99UogAAAAAADISZl9H+qa1ReoU6eOpJuL/Q0bNkxdunRRhQoVMqy1WCxq3759Vl8qncKFC6t58+Z3rPHx8VHTpk3vWOPu7q7GjRvfscZqtapu3br33CMAAAAAAHlZlgOBAQMG6LnnnlPNmjXvWjthwoSsvgwAAAAAAMgGWQ4Ebi2+BwAAAAAA8p/7uu3g7aSlpenUqVO6fPlyduweAAAAAADcpywHAqNHj9b69esz3qmLi5o2bWq/FSAAAAAAAMhbshwIREZGau3atbd9vEmTJvbb9QEAAAAAgLwlWy4ZkG6u4H+vt+gDAAAAAAA5454WFTx16pTD93Fxcem2SdKJEye0cOFCPfroo/fXHQAAAAAAyBb3FAiEhobKYrHYv588ebImT56cYW1AQIAmTpx4f90BAAAAAIBscU+BwIgRI2SxWGQYhkaPHq26deuqYcOGDjUuLi568MEH1aJFCwUHBzu1WQAAAAAA4Bz3FAhERkba/z169GjVq1dPI0eOdHZPAAAAAAAgm2XbooIAAAAAACDvuqcZAn+1bt06lS5d2pm9AAAAAACAHJLlQKB+/frO7AMAAAAAAOQgLhkAAAAAAMCECAQAAAAAADAhAgEAAAAAAEwoU2sIjB49WhaLRa+99poCAwPt2+7GYrFo+PDh99chAAAAAABwOothGMbdilxcXGSxWHTw4EGVL1/evu2uO7dYlJqaev9d5mPx8fHy9/dXXFyc/Pz8crudOwodvDJTddHvtczmTgAAAAAAWZXZ96GZmiFw4sQJSVLJkiXTbQMAAAAAAPlPpgKB0qVLZ2obAAAAAADIH1hUEAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwoWwJBNLS0nTq1Cldvnw5O3YPAAAAAADuU5YDgdGjR2v9+vUZ79TFRU2bNlWbNm2yunsAAAAAAJCNshwIREZGau3atbd9vEmTJtqzZ09Wdw8AAAAAALJRtq0h4O7uLqvVml27BwAAAAAA98H1XopPnTrl8H1cXFy6bZJ04sQJLVy4UI8++uj9dQcAOSh08Mq71kS/1zIHOgEAAACy3z0FAqGhobJYLPbvJ0+erMmTJ2dYGxAQoIkTJ95fdwAAAAAAIFvcUyAwYsQIWSwWGYah0aNHq27dumrYsKFDjYuLix588EG1aNFCwcHBTm0WAAAAAAA4xz0FApGRkfZ/jx49WvXq1dPIkSOd3RMAAAAAAMhm2baoIAAAAAAAyLvuaYbAX61bt06lS5d2Zi8AAAAAACCHZDkQqF+/vjP7AAAAAAAAOSjLgUBKSoo++OADLVu2TBcuXJBhGOlqLBaLjh07dl8NAgAAAAAA58tyIDBo0CB98skn8vDwUOXKleXl5eXMvgAAAAAAQDbKciAwb948lSlTRlFRUSpWrJgzewIAAAAAANksy3cZSExMVJs2bQgDAAAAAADIh7IcCNSrV09RUVHO7AUAAAAAAOSQLAcCn3zyic6dO6euXbvq0qVLzuwJAAAAAABksyyvITBt2jQ9+eST+uabb/T999+rUaNGCgsLU6FChew1FotFY8eOdUqjAAAAAADAebIcCLz33nv2f8fHx2vp0qXpaggEAAAAAADIm7IcCJw4ccKZfQAAAAAAgByU5UCgdOnSzuwDAAAAAADkoCwvKng3V69e1ezZs7Nr9wAAAAAA4D5kORBITU3VuHHjVL58ebm5uclqtTp8+fv7q0ePHk5sFQAAAAAAOEuWA4FJkyZp2LBhCgwMVGhoqFxcXNStWze1b99eFotFAQEBGjVqlDN7BQAAAAAATpLlQGDmzJlq0KCBtm7dqhkzZigtLU0DBw7UggUL9N133+ny5csqU6aMM3sFAAAAAABOkuVA4OTJk6pRo4YkqU6dOvLw8FBUVJQk6dlnn1XdunX10UcfOadLAAAAAADgVFkOBIoUKaLo6GhJktVqVZUqVbRz50774zVr1tSBAwfuu0EAAAAAAOB8WQ4EmjdvriVLlmjw4MGSpAYNGmjp0qU6ffq0rl+/rqioKAUFBTmtUQAAAAAA4DxZDgRGjRqlSpUqadKkSZKkl156SYmJiSpTpoweeOAB7dixQ506dXJaowAAAAAAwHlcs/rE4OBgbdu2TatXr5YkhYWFadWqVRozZoz+/PNPPfnkkxo3bpzTGgUAAAAAAM6T5UBAktzd3dWmTRv793Xr1tVPP/10300BAAAAAIDsleVLBgAAAAAAQP6V5RkCLi4uslgsd6yxWCxKSUnJ6ksAAAAAAIBskuVAoFu3bg6BQGpqqk6dOqW9e/cqLi5OtWvXVoUKFZzSJAAAAAAAcK4sBwJff/11htsTEhI0fvx4TZs2TbNmzcrq7gEAAAAAQDa6r0UFM+Lr66tx48YpLS1Nb731lpYvX+7slwAAAAAAAPcp2xYV7NChgzZu3JhduwcAAAAAAPch2wKB5cuXy9XV6RMQAAAAAACAE2T5HXuvXr0y3J6SkqKDBw9q9+7d6tq1a5YbAwAAAAAA2cfpiwpKUnBwsHr16qUPPvggq7sHAAAAAADZKMuBQFpamjP7AAAAAAAAOSjb1hAAAAAAAAB51z0FAr/++qsGDx6s+vXrKyQkRH5+fnJzc5OPj49KliypJ554Qm+99Zb27NmjtLQ0bd68OUtNXbx4USEhIVq/fr3D9s2bN8tisaT7evfddx3q1q9frxo1asjLy0v16tXTsWPH0r3G3r171aBBA3l7e+uRRx7Rzp0709VER0erdevW8vPzU/ny5bVq1aosHQ8AAAAAAHlNpi4ZMAxD/fv315QpUzK8VCApKUlJSUk6f/68tmzZok8++UQlSpTQ2bNnNX78eA0aNCjTDV27dk0dO3bUmTNn0j22a9cuBQcHa9KkSQ7bH374Yfu/d+zYoWbNmqlcuXIaN26clixZohYtWujXX3+Vu7u7pJtv9Bs1aiQfHx+NHj1aUVFRatasmQ4dOqSgoCBJUlxcnBo3bqzLly9r6NChOnLkiNq1a6e9e/eqQoUKmT4eAAAAAADyokwFApMmTdJnn32mf/zjH+rfv79q166tUqVKydfXV4UKFVJqaqouX76siRMnatKkSUpNTdWZM2dUo0YNtWvXLtPNxMTEqE2bNjp58mSGj+/cuVO1atW6490LBg4cqICAAG3YsEGBgYF68cUXFR4erqlTp6pfv36SpMjISCUlJWn79u0qW7asBgwYoBo1amj8+PH68MMPJUkfffSRjh8/rqioKD3++OOSbs5cGDp0qBYtWpTpYwIAAAAAIC/K1CUDU6dO1T/+8Q/t3LlTL7/8sqpVq6bChQurUKFCkiSLxaJu3bpp4sSJKlSokF5//XVVqVJFiYmJKl++fKabmTt3rlxdXbV8+fIMH9+5c6fq1Klz2+dfvnxZGzduVM+ePRUYGChJ8vb2VufOnbVs2TJJN2c7rFixQu3atVPZsmUlSVarVT169LDXSNKyZctUu3ZtexggSREREVq9erVsNlumjwkAAAAAgLwoU4HAqVOn1KJFC3l6ema8ExcXzZkzRxMmTFB0dLQ++ugjPfnkkzpx4sQ9NdOmTRutW7dOhQsXTvfY1atXdejQIa1cuVLFihWTt7e3GjVqpO3bt9trDh48qLS0ND3xxBMOz61atar27t0rSTp//rxiY2MzrDl27JgSExMlSfv378+wJjExUUePHr3tMdhsNsXHxzt8AQAAAACQ12QqEChZsqTWrFmjlJSU29YEBgbq7bffVnBwsFJSUvTf//5XJUqUuKdmypQpI6vVmuFjO3fuVFpampKSkvSvf/1Lo0aNsq8FcPz4cUnSlStXJEmhoaEOzw0ODlZMTIyuX79+xxpJOn36tJKSkpScnHzHmtsZP368/P397V8hISGZOHIAAAAAAHJWpgKB7t276//+7//UqFEjrVq1SnFxcRnWxcbGasWKFapXr5727dunHj16OK3R4OBgvf/++9q6daveeOMNvf3229q4caMMw9Dnn38u6eblAJLk5eXl8FwPDw9JUkJCgtNqbmfIkCGKi4uzf90pPAAAAAAAILdkalHBwYMHa8+ePVq6dKlatmwp6ea1+bduO3jjxg3Fx8crKSlJ0s035h06dNCQIUOc1milSpVUqVIlh20lS5ZUo0aNtG7dOkn/e8N+6w39Lbe+t9lsTqu5HXd3d/vdDAAAAAAAyKsyFQi4ublp8eLFWr58uWbPnq1t27bp7Nmzunr1qr3GYrEoJCREderUUdeuXdWiRYtsa/qvvLy89Mcff0iSihUrJunmlP6wsDB7TUxMjCTJ19dXDzzwgL3mr/5aY7VaFRQUdMcaAAAAAADys0wFAre0adNGbdq0kXTzU/K4uDjduHFD7u7u8vf3t991IDvcuh3gW2+95bB93759CgoKkiSFh4fL09NTW7ZsUf369e01u3fvlqenp/z9/SVJYWFh2rJli7p37+5QI/0vVKhataq2bNni8Fp/rwEAAAAAIL/K1BoCGXF3d1eRIkVUqlQpBQcHZ2sYIN28O8CECRN0+fJl+7bvvvtOBw8eVNOmTe09PfXUU5o5c6auX78uSUpOTta8efMcAoLWrVtrwYIF9k/8JWn27NmqWLGiihYtaq9Zs2aNDh8+7FDj5+en6tWrZ+uxAgAAAACQ3bIcCOS0vn37KjExUY899pgGDBigzp07q1u3bipdurQGDhxorxs0aJCOHj2qTp06adWqVerQoYNOnz6tPn362Gv69+8vm82mtm3b6scff1Tv3r21bds2h5oePXooODhYbdu21fLlyzV06FDNmzdPERERcnNzy9FjBwAAAADA2fJNIBAaGqp169apaNGi+vLLL/XLL7+oZ8+e2rZtm/12gJJUp04dzZo1S2vWrFHz5s21cuVKjRgxwn6pg3TzkoHFixfryJEjatGihaZPn66IiAj17dvXXhMQEKAVK1boxo0batu2rcaPH69WrVppzJgxOXrcAAAAAABkB4vx96X0C4hLly5p+/btKleunMLDwzOsuXr1qjZt2qQSJUqoSpUqGdbYbDZFRUXJ19dXtWrVuuc+4uPj5e/vr7i4OPn5+d3z83NS6OCVmaqLfq9lNncC5I7MjAHOfwAAAOR1mX0fek+LCuYnhQsXVvPmze9Y4+PjY19/4Hbc3d3VuHFjZ7YGAAAAAECuyzeXDAAAAAAAAOchEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhO7rtoMnT57UqlWrdOHCBRmGke5xi8Wi4cOH389LAAAAAACAbJDlQGDlypV69tlnZbPZMgwDJAIBAAAAAADyqiwHAoMHD1ZKSoomTZqkp556Sl5eXs7sCwAAAAAAZKMsBwLHjx9X9+7d9frrrzuzHwAAAAAAkAOyvKhgWFiYrl+/7sxeAAAAAABADslyIDBs2DDNmzdPP/74ozP7AQAAAAAAOSDLlww88sgjevvtt9WmTRt16tRJHTt2VFhYmAoVKuRQV758+ftuEgAAAAAAOFeWA4GKFSvKYrHIMAx9++23+u677zKsS01NzXJzAMwtdPDKTNVFv9cymzsBAAAACp4sBwIjRoyQxWJxZi8AAAAAACCHZDkQiIyMdGIbAAAAAAAgJ2V5UUEAAAAAAJB/EQgAAAAAAGBCBAIAAAAAAJhQltcQAAAAAADkskj/TNbFZW8fyJcyFQg0atRIFotFs2bNUqlSpezb7sZisWjNmjX31yEAAAAAAHC6TAUCx48fl8ViUXJycrptAAAAAAAg/8lUIBAdHZ2pbQAAAAAAIH9gUUEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIRc7+fJ27Zt04YNGzRo0CBJ0i+//KJRo0bp4sWL6tChg0aOHOmUJgEgz4j0z2RdXPb2AQAAANynLM8Q+OGHH/TEE0/oiy++kCSdOnVKzZo108aNGxUdHa3Ro0dr8uTJTmsUAAAAAAA4T5YDgTFjxig8PFxbt26VJH377bdKSUnRzp07df78eT300EOaOnWq0xoFAAAAAADOk+VLBg4cOKCXXnpJRYoUkSRt3rxZdevWVdWqVSVJTZs2tc8eAAAAAADTyMwlhlxeiDwgy4GAh4eHEhISJEmGYWjbtm3q2bOn/fFr167Jz8/v/jsEnCB08MpM1UW/1zKbOwEAAADyMcKOAiXLgcAjjzyiefPmqWHDhtq9e7diYmL0xBNPSJJiY2P1/fff22cLAAAAAACAvCXLgcCYMWPUqFEjdenSRYZhqGbNmmrRooX27dunRx99VGlpaZo5c6YzewUAAAAAAE6S5UCgZs2a2rNnj1auXKkiRYromWeekYuLizw8PPT000+rV69eatSokTN7BQAAAAAATpLlQECSwsPD9frrrztsK1eunObNm3dfTQH5XWbWLGC9AgAAAAC5Kcu3HQQAAAAAAPnXfQUCNptNX3/9tSIiItSy5c1PO5csWaK33npLf/75p1MaBAAAAAAAzpflSwYuXLighg0b6tChQzIMQxaLRZJ0/vx5ffTRR1q4cKE2b96skiVLOq1ZAAAAADCLTF2G6pEDjaDAyvIMgUGDBunw4cN699131bt3b/v2Pn36aOHChbp48aKGDx/ulCYBAAAAAIBzZTkQ+P777/X0009ryJAhKlq0qH27xWJR+/bt1bFjR/38889OaRIAAAAAADhXlgOBpKQkPfjgg7d93MfHR7GxsVndPQAAAAAAyEZZXkOgSpUqWrt2rdLS0tI9lpiYqJUrV6py5cr31RyAu8vMtWUStzkEAAAA4CjLgcBbb72lzp07q3nz5vLx8ZEk7d27V4cOHdLHH3+sU6dO6b333nNaowAAAACQJZH+mayLy94+gDwmy4FAx44ddfz4cQ0fPlypqamSpOrVq0uSXFxcNGbMGHXq1Mk5XQIAAAAAAKfKciAgSYMHD1bnzp21ePFiHT16VJIUHh6up59+WmXKlHFKgwAAAAAAwPnuKxCQpNDQUL355pvO6AUAAAAAAOSQLN9lAAAAAAAA5F8EAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACWVqUUEXFxdZLJZ73rnFYlFKSso9Pw8AAAAAgBwV6Z/Jurjs7SMHZSoQ6NatW5YCAQAAAADIUGbefBWgN15AXpSpQODrr7/O5jYcXbx4UdWrV9fs2bPVoEEDh8cWLlyoESNGKDo6Wk2aNNH06dMVHBzsULN+/Xq9/fbbOnDggGrUqKGZM2eqbNmyDjV79+7V66+/rh07dqh8+fKaNm2aatSo4VATHR2tfv36acOGDSpWrJg+/fRTNWvWLFuOGYC5hA5emam66PdaZnMnAAAAMKtMBQI56dq1a+rYsaPOnDmT7rFly5apY8eOevzxx/Xyyy9r5syZ6tixo9atW2ev2bFjh5o1a6Zy5cpp3LhxWrJkiVq0aKFff/1V7u7ukm6+0W/UqJF8fHw0evRoRUVFqVmzZjp06JCCgoIkSXFxcWrcuLEuX76soUOH6siRI2rXrp327t2rChUq5MwPAwAAAAAKoMx8OMIHI9kvTwUCMTExatOmjU6ePJnusbS0NL3xxhuqXLmyfv75Z3l4eOjZZ59VWFiYVqxYodatW0uSBg4cqICAAG3YsEGBgYF68cUXFR4erqlTp6pfv36SpMjISCUlJWn79u0qW7asBgwYoBo1amj8+PH68MMPJUkfffSRjh8/rqioKD3++OOSbs5cGDp0qBYtWpRDPxEAAAAAALJHnrrLwNy5c+Xq6qrly5ene2zfvn06ceKEXnvtNXl4eEiSSpQooebNm2vZsmWSpMuXL2vjxo3q2bOnAgMDJUne3t7q3LmzvcYwDK1YsULt2rWzX0ZgtVrVo0cPe410czZC7dq17WGAJEVERGj16tWy2WzZ8wMAAAAAACCH5KkZAm3atFHfvn11+vTpdI/t379fkvTEE084bK9atap++OEHSdLBgweVlpaWYc2cOXMkSefPn1dsbGyGNceOHVNiYqK8vb21f/9+vf766+lqEhMTdfToUVWqVOn+DhbIp5jeBQAAABQM9x0InDt3TidOnFBqaqrD9vj4eC1ZskTTp0/P9L7KlClz28euXLkiSQoNDXXYHhwcbA8Q7lQTExOj69ev37FGkk6fPq0HH3xQycnJd6y5XSBgs9kcZhDEx8ff9pgAAAAAAMgtWQ4EYmNj1blzZ61Zs+aOdfcSCNyJYRiSJE9PT4ftHh4eSkhIcKjx8vJKVyNJCQkJTqu5nfHjx2vUqFGZPCoAAAAA+UWm7xLkkc2NAE6S5TUEhg4dqrVr12rgwIFq3ry5rFarpk6dqk8//VRFixZVQECAVq9e7bRGPTw8ZLFYlJaW5rDdMAz7J/K33rDfekP/1xrp5qf3zqq5nSFDhiguLs7+ldHlDwAAAAAA5LYsBwKrVq1Sx44d9d577+mDDz5QSkqKKlasqNdee00///yzEhMTtWnTJqc1WqxYMRmGobNnzzpsj4mJka+vr71GUro34TExMZIkX1/fTNVYrVYFBQXdseZ23N3d5efn5/AFAAAAAEBek+VA4OLFiypVqpQkqWLFigoMDNS2bdskSZUqVVKrVq00e/Zs53QpqUqVKpKkLVu2OGzfvXu3/U1+eHi4PD09M6zx9PSUv7+/vL29FRYWlmGN9L9QoWrVqnetAQAAAAAgv8ryGgKhoaEOb5gfffRRbd261f596dKl7av/O8ODDz6oatWq6csvv1SnTp1ksVh06dIl/fjjj3rhhRck3fx0/qmnntLMmTM1YMAAeXh4KDk5WfPmzVP9+vXt+2rdurVmz56td999V0FBQZKk2bNnq2LFiipatKi9ZuDAgTp8+LDKly9vr/Hz81P16tWddlxmxmr1AAAAALIbaz/cXpZnCPTo0UObNm2y376vSZMmWr58uebOnat169ZpwYIFd7xrQFYMGTJE69ev10svvaRVq1apdevWun79ul588UV7zaBBg3T06FF16tRJq1atUocOHXT69Gn16dPHXtO/f3/ZbDa1bdtWP/74o3r37q1t27Y51PTo0UPBwcFq27atli9frqFDh2revHmKiIiQm5ubU48LAAAAAICcluUZAm+88YaOHj2qb775RpLUp08fffbZZ+rWrZukmwvwTZs2zTld/n+dOnXSyZMn9c477+irr76Su7u7Pv/8c4dP7OvUqaNZs2bplVde0fLly+Xi4qIRI0aoTZs29pqwsDAtXrxYXbt2VYsWLSRJERER6tu3r70mICBAK1asUMeOHdW2bVtJUqtWrTRmzBinHhMAAAAAALkhy4GAq6urvvzyS40fP16S5OPjo927d+uLL77Qn3/+qSZNmqh169ZZ2ndoaGi6Ff5vGTRokJ5//nnt3btX1apVU8mSJdPVdO3aVc2bN9f27dtVrlw5hYeHp6t56qmndPz4cW3atEklSpSwr1HwV48++qgOHDigqKgo+fr6qlatWlk6HgDZLNI/k3Vx2dsHAAAAnIe/8bJdlgOBWwIDAx3+PXTo0Pvd5V2VLFkywyDgrwoXLqzmzZvfscbHx0dNmza9Y427u7saN258zz0CAAAAQH7BdfbmdM+BQGpqqqxWa7rt69ev1+7du+Xl5aVGjRrZF+IDAAAAAAB5T6YDgfXr12v48OHasWOHYmNj5eXlJUlKSkrSs88+q1WrVkm6uXaAi4uL+vfvr0mTJmVP1wAAAAAA4L5kKhBYunSpnnnmGRmGoX/84x8OMwSef/55/fjjjwoKCtLrr7+uQoUKaebMmfrkk0/00EMPqXfv3tnWPAAAAAAAyJpMBQJjx46Vn5+ffv75Zz366KP27d9//72WLVumwMBAbdu2zX6bwVdffVVVq1bVlClTCAQAAAAAAMiDMhUIHDhwQN26dXMIAyRp+PDhslgsGjt2rD0MkCRvb281b95cM2bMcG63AADkB6yKDAAA8oFMBQLu7u6y2WwO21auXKm9e/eqVKlSGc4CuHr1qlxd7/smBgAAAAByAmEmYDqZesferFkz/ec//1H79u3VpEkT/frrr3r11VdlsVg0cODAdHcd2LFjh+bPn6/HHnssW5oGAAB/kZk/4vkDHgAA/E2mAoEJEyZo/fr1atu2rX2bYRiqV6+eXnvtNfu2d999V+vXr9fGjRuVmpqqd955x/kdAwAAAGZB4AcgG2UqEChVqpR27typsWPHauPGjXJ3d1eLFi00ePBgubi42OtWrlypbdu2qVixYvrkk0/UpEmTbGscAAAAQN4TOnhlpuqiPbK5EQB3lemL/EuUKKHPPvvsjjVTpkyRi4uLKleu7BAUAAAAAACAvMWpq/49/PDDztwdAAAAAADIJnyMDwAAAACACXFfQACAObAwFwAAgAMCAQDIy7gnNADkLfxeBlCAcMkAAAAAAAAmRCAAAAAAAIAJcckA7h3X4QIAAABAvkcgAAAAMo/rpwEAKDAIBAA4H28YAAAAgDyPNQQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABNiDQEAAADkX6xbAwBZRiAAAABQ0PGmGQVY6OCVd62J9siBRoB8iEAAAAAAzkUAAQD5AoEAAAAAkMMy86m2xCfbALIXgQAAAMi7MvNJM58yAwCQJdxlAAAAAAAAEyIQAAAAAADAhLhkADALpt0CAAAA+AsCAQDA/xAcAQAAmAaXDAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJkQgAAAAAACACbGoIAAgd2RmAUOJRQyRczgnAQAmwwwBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCEWEMAAAAAKMBCB6/MVF20RzY3AiDPYYYAAAAAAAAmxAwBAACA3JCZuxpwRwMAQDZihgAAAAAAACbEDAEgt3C/awAAAAC5iEAAAAAAeVJmFsNjITwAyDouGQAAAAAAwISYIQAAAADT49Z8AMyIQAB5W05fZ8+KzwAAAABMgksGAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAh7jIAAMA9yMytybgtGQAAyA+YIQAAAAAAgAkRCAAAAAAAYEIEAgAAAAAAmBCBAAAAAAAAJsSiggAAIMdlZnFGiQUaAQDITswQAAAAAADAhAgEAAAAAAAwIS4ZAAAgj8rpafWZeT2m8AMAUHAwQwAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMKF8FwicO3dOFosl3Vfv3r3tNXv37lWDBg3k7e2tRx55RDt37ky3n+joaLVu3Vp+fn4qX768Vq1ala4mJiZGXbt2VWBgoEJCQvTNN99k67EBAAAAAJBT8t2igrt27ZLVatWMGTPk4vK/PCM8PFzSzTf6jRo1ko+Pj0aPHq2oqCg1a9ZMhw4dUlBQkCQpLi5OjRs31uXLlzV06FAdOXJE7dq10969e1WhQgVJUkpKilq2bKm9e/dq0KBBunbtmnr27KmQkBA1bNgw5w8cAAAgAywGCQDIqnwXCOzcuVMVK1ZUt27dMnw8MjJSSUlJ2r59u8qWLasBAwaoRo0aGj9+vD788ENJ0kcffaTjx48rKipKjz/+uCTp4sWLGjp0qBYtWiRJmjNnjrZv3665c+eqS5cukiSbzaa3335bu3btyoEjBQAAAAAg++TLQKBOnToZPmYYhlasWKF27dqpbNmykiSr1aoePXro3//+tz0QWLZsmWrXrm0PAyQpIiJCzz//vGw2m9zd3bVs2TKVKFFCzz33nEPNv//9b505c0alSpXKxqMEAGRWTt+aDzAzxhsAFCz5bg2BnTt3avfu3SpdurQ8PT1Vu3Zt/fjjj5Kk8+fPKzY2Vk888YTDc6pWrapjx44pMTFRkrR///4MaxITE3X06FF7TZ06dWSxWOw1lSpVktVq1d69e2/bn81mU3x8vMMXAAAAAAB5Tb4KBKKjo3XhwgVduXJFffr00YQJE3Tt2jW1atVKmzdv1pUrVyRJoaGhDs8LDg6WJJ0+fVpJSUlKTk6+Y40kXblyJV2Nq6urAgIC7DUZGT9+vPz9/e1fISEhWT9gAAAAAACySb66ZMBqtWrs2LHq06ePHnjgAUlSjx499NBDD2nSpEkaNWqUJMnLy8vheR4eN+etJSQkyDCMu9ZINy8/+HvNrbpbNRkZMmSI3nzzTfv38fHxhAIAAOQyFt4DACC9fDVDICQkREOHDrWHAZLk6+urdu3aad26dfY39bfe9N9y63ubzZapGunmG/+/19yqu1WTEXd3d/n5+Tl8AQAAAACQ1+SrQOB2vLy8FBsba7+t4N+n9MfExEi6GR5YrVYFBQXdsUaSihUrlq7GMAzFxsbaawAAAAAAyK/yVSAwe/Zs/etf/0q3fd++ffLz85O/v7/CwsK0ZcsWh8d3794t6eabfOnmAoJZqTlw4ICuX79urwEAAAAAIL/KV4FAXFycPv30Ux07dsy+LSoqSqtXr1bTpk0lSa1bt9aCBQvsn/hLN4OEihUrqmjRovaaNWvW6PDhww41fn5+ql69ur3m999/17p16xxqLBaL6tevn63HCQAAAABAdstXiwp269ZN48aNU7169dS+fXslJCRowYIF8vf317vvvitJ6t+/v7766iu1bdtWw4YN06JFi7Rt2zZ98skn9v306NFDEyZMUNu2bfX+++9r69atmjdvnt544w25ublJklq1aqUqVaro+eef10cffaQzZ85o0qRJateuHTMEAOAOuE85AABA/pCvAgE/Pz9t2LBBr7/+umbMmCEvLy+1adNGY8aMUXh4uCQpLCxMixcvVteuXdWiRQtJUkREhPr27WvfT0BAgFasWKGOHTuqbdu2km4GAGPGjLHXuLq6aunSpXrmmWfUuXNnSVLt2rU1ZcqUnDpcAAAAAACyTb4KBCSpXLly+uGHH+5Y89RTT+n48ePatGmTSpQooSpVqqSrefTRR3XgwAFFRUXJ19dXtWrVSlcTFhamHTt2aPPmzZKkOnXqyGq1OudAAAAAAADIRfkuEMgsHx8f+7oCt+Pu7q7GjRvfscZqtapu3brObA0AAAAAgFxXYAMBAACA3MA6GgCA/CJf3WUAAAAAAAA4B4EAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJgQgQAAAAAAACZEIAAAAAAAgAm55nYDAIDsx33RAQAA8HfMEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhAAAAAAAMCECAQAAAAAADAhAgEAAAAAAEyIQAAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAAAAAAAwIQIBAAAAAABMiEAAAAAAAAATIhDIhPXr16tGjRry8vJSvXr1dOzYsdxuCQAAAACA+0IgcBc7duxQs2bNZLPZNG7cOFksFrVo0UI2my23WwMAAAAAIMsIBO5i4MCBCggI0IYNGzRgwAD98MMPio+P19SpU3O7NQAAAAAAsoxA4A4uX76sjRs3qmfPngoMDJQkeXt7q3Pnzlq2bFkudwcAAAAAQNa55nYDednBgweVlpamJ554wmF71apVNWfOnAyfY7PZHC4niIuLkyTFx8dnX6NOkmZLylRdvMXIRNHdjzczr5ep18rE63FsHJuzXq8gH1umX8/Ex5bZ1+PY7v56HBvH5qzXK8jHlunXM/GxZfb1OLa7vx7H5rzXywtuvf80jDsfk8W4W4WJ/fDDD2rZsqV+++03VapUyb79+++/V+vWrXXt2jV5eHg4PCcyMlKjRo3K6VYBAAAAAHBw+vRplSpV6raPM0PgDm5lJV5eXg7bb4UACQkJ6QKBIUOG6M0337R/n5aWptjYWBUuXFgWiyWbO85+8fHxCgkJ0enTp+Xn55fb7QA5ivMfZscYgNkxBmB2jIH8wzAMJSQkqESJEnesIxC4g1tv9v8+ieLW9xndacDd3V3u7u4O2wICArKnwVzk5+fHLwGYFuc/zI4xALNjDMDsGAP5g7+//11rWFTwDooVKybp5jSLv4qJiZEk+fr65nhPAAAAAAA4A4HAHYSHh8vT01Nbtmxx2L579255enpmKnEBAAAAACAvIhC4A3d3dz311FOaOXOmrl+/LklKTk7WvHnzVL9+/VzuLne4u7tr5MiR6S6LAMyA8x9mxxiA2TEGYHaMgYKHuwzcxebNm1W3bl21atVKffr00eeff64VK1Zo2bJlatOmTW63BwAAAABAlhAIZMKcOXP0yiuvKDExUS4uLho2bBi3FgQAAAAA5GsEApl06dIlbd++XeXKlVN4eHhutwMAAAAAwH0hEAAAAAAAwIRYVBAAAAAAABMiEAAAAAAAwIQIBAAgD/nrVVxc0QWzSk1Nze0WgFzD736YHWMgZxEIAEAekpycLElKSUmRxWJRWlpaLncE5KyFCxdq3LhxSklJye1WgFxx48YNSbL//uf/B2A2FotF0v+CAcZA9iIQQJ7y+++/KyYmJrfbAHLFDz/8oB49eqh+/frq1auXLl26JBcXF5JymMbMmTPVsWNHubi4yGaz5XY7QI5bvny5XnjhBbVt21ZDhgzR5cuX5eLiwhsimMa6dev07rvvqlevXho+fLj+/PNP/hbKZtxlAHmCYRiKjo5W586d1a5dO/Xp00cBAQG53RaQY+bMmaOXXnpJNWvWlNVq1dGjR1WqVCn99NNP8vHxye32gGz39ddfq1evXhowYIDeeustlSxZMrdbAnLU3Llz9cILL6hChQpKSUnRqVOnVKVKFf33v/9VQECADMOwf3IKFERz5sxRRESEQkJCZLPZdP78eRUrVkw//fSTHnroIaWlpcnFhc+znY2fKPIEi8WiMmXK6MqVK5o+fbqmTZumy5cv53ZbQI44fPiwRo4cqd69e2vWrFlau3athg0bpv3792vHjh32OvJbFFTffPONevXqpWHDhqlfv372MODvawnwKSkKqhMnTmjYsGHq0aOHVq1apSNHjmjMmDE6cuSIJkyYoLS0NMIAFGhHjx7V2LFj9corr2jVqlU6ffq0/vOf/8jX11cdOnRQfHw8YUA24aeKPMXT01OXLl3SF198oenTpxMKwBQuXryoixcvqk2bNgoNDZUkNWrUSEWKFNGVK1d0/PhxXb58mT8GUWBt2LBBktSlSxeVKVNGkjRp0iT17NlTHTt21Geffaa4uDimTqPAio2N1dmzZ/XUU0+pdOnSkqQ333xT1atX1+rVq3kjhALvjz/+0Llz59S8eXOFh4dLklq3bq1+/frp+PHjmjVrliSC4ezAbxfkCWlpaYqPj5ebm5v+85//qHnz5po8eTKhAEyhcOHCCgkJ0fHjx+3bdu3apWPHjqlLly6qXbu2/vGPf2jWrFmMBxRIQ4YMUc2aNTVx4kRJUrdu3TR8+HDt3r1bu3bt0ogRI1S3bl2dO3eOUAAFyq2ZX15eXgoICFBgYKCkmwsLurq6qk+fPtqzZ482btyYm20C2ebW7/OYmBglJyfL29tbkmSz2eTu7q7u3bsrICBA69evlyTCsWzATxS57tb1QH5+fgoLC1NqaqomT56sxo0bEwrAFEqXLq3y5cvr008/Vdu2bfXOO+/oueeeU1hYmIYOHarhw4fr4Ycf1quvvqply5ZJ4vIBFCxlypRR165ddejQIfXo0UO//PKLpk6dqi1btujYsWOaOHGirly5ovr16+vKlSv8QYgC49bMrxIlSujBBx/UpUuXJEmFChWSJFWsWFGSdP78eUn87kfBc+v3ec2aNeXq6qqZM2dKktzd3SXdPPc9PDz0/fffa/v27bnWZ0HGooLIFWfPnlVKSoqKFy8ui8UiNzc3SdKff/6p4OBg+y+HiIgIrVmzRn379lVERIQeeOCB3GwbcIq/nv9paWny8PBQTEyMBg0apNOnT+vMmTM6ceKElixZoubNm0uSLl++rJYtW+r06dPatWuXihQpkstHAWTd9evX5eHhIel/oXBCQoI6d+6sH3/8UQ0aNND8+fMVFBQk6eZtOKdMmaLXX39dAwcO1Pvvv5+b7QP3bfv27Tp06JA8PDxUuXJlPfTQQ/ZZYmFhYZJuvvm/fv26qlWrprZt29pn0Ej/+/QUyK8yGgPvv/++hgwZov79+6t3795ydXXVJ598opkzZ+rGjRv65ptv1LVr19xuveAxgBw2Z84co1SpUkbx4sWNMmXKGN26dTM2bNhgGIZhpKWlGYZhGMnJyfb6Xr16GaVLlzYmTpxoxMbG5krPgLNkdP6vXbvWMAzDuHHjhmEYhtGnTx/jkUcesT/HZrMZhmEYQ4YMMSwWi7Fy5cqcbxxwkp9//tkYN26ccf78efu2lJQUwzAM49SpU0ZoaKgxYsQI+2OpqamGYRhGUlKSUa5cOaNx48Y52zDgZLNmzTLc3d0Nd3d3w8XFxQgJCTHWrFlz2/r69esbTZs2tX+/b98+o1evXsbu3btzol3A6TIaA1FRUUZycrLxzjvvGN7e3obFYjECAgKMwoULG+vWrTOaNGliPPXUU8a1a9fs7xfgHMy5Q446cOCA+vfvr6eeekpz587VwIEDdePGDTVv3lwzZ860T51zdXVVSkqKJGn69On2ywdmzpyp2NjY3DwEIMtud/63atVKM2bMsM+UKVGihK5cuaJLly4pOTnZPnX05MmTkmSvA/Kj//u//9O7776rb7/9Vn/++ackyWq1KiUlRSEhIVqyZImaNWsmSQ63WfP09JSPj49u3LiRa70D9+uXX37Ryy+/rJ49e+rnn3/WtGnT5Ofnp1deeUVHjhxxqL11bXWZMmXsf/vs379f77zzjmbOnGmfZQPkJxmNAV9fX/Xs2VPnz5/XqFGjtHPnTn366af6/PPP9euvv6pBgwaqUKGCfvvtN+64kR1yO5GAuWzYsMGwWq0On3D++eefxqhRowwXFxfj3XffNa5du2Z/7K8zBV566SXD19fX+Pe//23/xAjIT+52/o8ZM8YwDMM4efKk4efnZ/Tu3ds4c+aMYRiG8cEHHxgWi8WoVKmSce7cuVzpH7gftz7RWbJkif2Tn7FjxxoxMTEZ1hmGYURHR9v/vWTJEiMoKMh4880309UBed2t83XcuHFGiRIljAMHDtgfmzp1quHh4WFMnz7dMAwj3d84Y8aMMYKDg41ffvnFaNGiheHj42P83//9X841DzjB3caAu7u7fQxk5LfffjP8/f2N+fPnZ3uvZuOa24EEzMVmsyktLU0+Pj6Sbn76U6RIEY0YMUKFCxdW//79ZbPZNHLkSFmtVrm6uio1NVVWq1Vffvml3N3d1axZMxaUQr6UmfM/KSlJ48aN06xZs9S9e3etXr1a3t7e+v3331W0aFEtWLBAxYsXz+UjAe7drU90UlJS9Oijj+qpp57SsGHDZBiGXnnlFRUuXNihbvv27YqMjFSFChWUlpamH3/8Ua6urnr11Vcd6oD84Nb5mpycLA8PD5UvX97+2Isvvqhp06Zp7ty56tWrV7q/cTw8PJSUlKTBgwdr7969ioqKUrVq1XK0f+B+ZWYMzJkzR7169crw+Q8++KDS0tK0d+9ePfvssznSs1kQCCBHlSlTRkWLFtUXX3yhKlWqOCwS+Nprr0mS+vfvr6JFi+q1116TYRiyWq32UODTTz/NrdaB+5bZ8z8kJER9+vRRVFSUhgwZorS0NNWrV0+DBg1S2bJlc6t9wCmsVqvi4uI0duxYubq6avjw4ZLkEApIUnBwsB599FF9+eWX8vHxUWhoqCZPnswYQL4WGBgowzAUFxenwMBA+/Tn6tWra9WqVbp27Zo8PT0dnhMWFqakpCQdOXJEmzZtIgxAvpaVMZCWliZfX18NGTJEbdq0yaXOC7DcnJ4Ac3r55ZcNLy8vY/78+faFpG5JTk42BgwYYLi5uRlbtmzJpQ6B7JPZ8z8qKsq+7a//C+R3p06dMpYuXWr/ftSoUYbFYjHefffddJcPGMbNxQQTExONxMTEnGwTyDb//ve/jT/++MNh24IFC4xChQoZu3btSlcfGxtr1KtXz/j1119zqkUgW93rGLjl7383wTmYd40ck5qaKkmaMmWKatWqpTfffFPbtm1zqHF1dVWXLl0UEBCg2bNnKyUlxb6oDpCf3ev5/+233zosnma1WnO0XyC7hISEqFmzZkpOTpYkjRgxQpGRkRo+fLi++OIL+33YpZvjxtPTU15eXvLy8sqtlgGnuPX/A6+88oqKFi0q4y93/i5SpIhSU1Mdzv+DBw9q9erVeuCBB7Ru3TpVqVIlx3sGnCkrY2Dt2rX27/lbKHsQCCDH3BrEp06d0owZM/Tggw+qW7du2rRpk2w2m72uZs2aKlOmjH777Te5urqyXgAKhKyc/4UKFZKr680ru7heGgXF0aNHZbVa5ebmZv/j8HahAH/8oSC5dT6fOHFCKSkpDr/XK1eurICAAB07dkzSzbsJ9O3bV+3bt1dsbCz/H4ACIStjoHXr1rp8+XKu9GsWvNNCjvr888/17LPPKjExUfPnz1fRokX19NNPa8qUKTpz5owk6Y8//lBSUpJSU1N1/fr1XO4YcB7Of5jdlClT1KVLF+3fv1/SzT8Ob80CuxUKjBo1SpMmTeIWsyiQpkyZoueff94+Bm7x8/OTh4eHTp8+rZMnT+pf//qXdu/erY0bNyowMJBAAAVGVsbAX9dcgvMRCCDHTJs2TX379lXDhg1VpkwZlSxZUps2bVLjxo01ceJE1a5dW02bNlXr1q118OBBvfTSS9xjFwUG5z/Mbtq0aXrttdfUqFEjlStXzr7dxcXFIRR48803NWXKFIeppEBBcLsxkJqaqrS0NHl6emr37t3q27ev1q9fr/Xr16t69eq52DHgXIyBvMli8P+4cALDMOzp9V//fcvUqVP1yiuvaNiwYXr77bfl5+fnULd06VJt2rRJO3fulIeHhyIiItS6dWu5u7vn+LEA94rzH2aXlTHwd2lpafZLxGJiYhQUFJT9jQNO4owx8Oyzz2rRokXy8/PT+vXr9fDDD+dE64BTMAbysRxfxhAF0tWrVx2+/+uK6FOnTjUsFosxbNgwIz4+3qHu76uF3rhxg9XUke9w/sPssjoG/i41NdUwDMNIS0tzfpNANnLGGHjzzTcNFxcX48CBA9nWJ5BdGAP5F4EA7tvUqVONxx57zGjcuLExaNAgh8c+//xzw2KxGMOHD7/rH4JAfsT5D7NjDMDs7ncM/DUAO3v2bLb2CmQHxkD+xhoCuC9jx47Vyy+/rGLFislms2nGjBnq3LmzJOnMmTP69ttv9a9//Utvv/22fH19c7lbwLk4/2F2jAGYnTPGgMVisd9xo0SJEjnWO+AMjIECILcTCeRfBw8eNDw9PY0pU6YYhnFzqtDo0aONwoULG1FRUYZhGMavv/5qJCQk5GabQLbg/IfZMQZgdowBmB1joGBghgCy7MqVK/Lw8FD9+vUlSd7e3urVq5c8PDx0/vx5SVKVKlXk4+NjX0EaKCg4/2F2jAGYHWMAZscYKBgIBJBlZcqUkdVqdbiP6JUrV3T58mW999576tOnjwYNGiSbzeZwWymgIOD8h9kxBmB2jAGYHWOgYHDN7QaQfxh/uYVIamqqrFarGjVqpAceeECGYSg5OVkrV67UtWvXVKxYMW3evFnHjh3TmjVrtGnTJnl4eGR4GxIgP+D8h9kxBmB2jAGYHWOgYLIYhmHkdhPIHxITE+Xi4iJPT0/7tkuXLsnDw0Pe3t6SpD179ui3337TCy+8oPj4eK1fv169evVS27ZtNX369NxqHbhvnP8wO8YAzI4xALNjDBRMBALIlO+++04fffSREhMTVaJECbVt21YdOnRQ8eLFlZaWJheXjK8+SU1NVUREhA4ePKi1a9faf1kA+QnnP8yOMQCzYwzA7BgDBRdrCOCutmzZol69eqlcuXIaMGCAihYtqvnz56t169Y6fPiw/Zqgv2ZLt24dYrVaVbhwYSUmJuZW+8B94fyH2TEGYHaMAZgdY6BgIxDAXR06dEhubm5666239OKLL2rOnDkaPXq0ihcvrpo1a2rr1q1ycXGxXw908uRJ/fHHH5Kkbdu2adeuXapUqZLc3Nxy8zCALOH8h9kxBmB2jAGYHWOgYGNRQdxVbGysrl69qjJlyti3NWjQQGXKlNHAgQP15JNPavny5WrYsKEuXLigoUOHavv27UpOTpbFYtG1a9f0+eefq1ChQrl4FEDWcP7D7BgDMDvGAMyOMVCwMUMAd1WhQgVZLBbNnj1bKSkp9u2lS5fWp59+qhYtWqhdu3bav3+/ihQpooEDB+qFF15Q8+bN9eqrr2rTpk166KGHcvEIgKzj/IfZMQZgdowBmB1joGBjUUHclc1m02OPPaa0tDQtWbJEZcuWdbhlyO+//64ePXro8uXLWrdunYoXL57LHQPOw/kPs2MMwOwYAzA7xkDBxgwB3FFqaqrc3d01ffp0XbhwQQMGDNC1a9dksVjsC4eUK1dOPXv21KlTp7R27Vr784D8jvMfZscYgNkxBmB2jIGCj0AAd2S1WiVJpUqV0pQpU7Rp0yZ169ZNSUlJ9lTQxcVFL774otzc3LR161aH5wH5Gec/zI4xALNjDMDsGAMFH4EA7mrKlCkaNmyYqlevrq+++kpr165VmzZttGnTJqWlpUm6uZqoi4uLkpKSZBiGuBIFBQXnP8yOMQCzYwzA7BgDBRt3GcAdTZs2Ta+99pr+9a9/qWTJkgoJCVHx4sX1wgsvqGPHjqpSpYqqVq2qAwcOKD4+Xk8//bQ9LQTyO85/mB1jAGbHGIDZMQZMwABu48svvzQsFosxfPhw48qVKw6PJSYmGkOHDjXq169vhIaGGhUqVDCmTZtm2Gy2XOoWcC7Of5gdYwBmxxiA2TEGzIG7DMAuLS1NLi43ryKZNm2aXn75Zb3zzjsaOHCg/Pz87HWpqan264JSU1N15coVFSpUSL6+vrnSN+AMnP8wO8YAzI4xALNjDJgTgYBJ7d69W/v371dycrIqV66sWrVq2R/74osv9Oqrr+qdd97RoEGDGNwocDj/YXaMAZgdYwBmxxiAXe5OUEBumD17tlG4cGEjMDDQsFgsRqVKlYyFCxcahmEY27dvN0qWLGkMHjzYiI+Pz+VOAefj/IfZMQZgdowBmB1jAH/FDAGTWbNmjTp06KBu3bqpW7ducnV11XPPPacqVarou+++U0JCgnbs2KHHHnvMYWoQUBBw/sPsGAMwO8YAzI4xgL/jLgMms2bNGj344IN66623VLp0aUlS27Zt9dNPPykuLk6BgYF68sknJUmGYbBKKAoUzn+YHWMAZscYgNkxBvB3BAIm4+LiIk9PTwUHB9u3ubu7KyEhQZ07d9YDDzygSpUqacSIEbJYLPwiQIHC+Q+zYwzA7BgDMDvGAP6OSwZMZuXKlWrdurVGjx6tGjVq6MqVK+rSpYtcXFzUoEED/fnnn9q/f786deqk7777ThLpIAoOzn+YHWMAZscYgNkxBpBODq9ZgByWlpZmGIZhpKam2re99957hsViMUJCQgyLxWJUrFjRWLlypWEYhnHu3Dn746NHj86VngFn4fyH2TEGYHaMAZgdYwB3wwyBAuyXX37RlStX1Lx5c7m5uTncM3T//v2yWCx64oknFBERoYkTJ9qfd/LkSdWuXVsVK1bUihUr5OPjk1uHAGQZ5z/MjjEAs2MMwOwYA8gM1hAogIz/P63nww8/VHR0tAoVKqTGjRvLzc1NaWlpcnFxUaVKlXTlyhUVKVJExYsXlyRdvXpVPj4+Kl26tPz9/RUTE6PU1NRcPhrg3nD+w+wYAzA7xgDMjjGAe+GS2w3A+dLS0iRJDz/8sPbt26eRI0dqzZo1SklJkYuLi25NCgkICFCTJk00YcIEHTt2zJ7+TZgwQYcPH1aZMmXsKSKQX3D+w+wYAzA7xgDMjjGAe0EgUADdGriFChVSzZo1lZqaqpdeekn//e9/lZKSIovFYv9F0b17dz300EOqXbu2PvjgA3Xr1k0jR45UUFCQPvjgA6YIId/h/IfZMQZgdowBmB1jAPckd5YuQE7417/+ZTz99NOGYRjGo48+apQuXdr48ccfjeTkZIe6rVu3Gl26dDEsFovh4+Nj1KlTxzh48GButAw4Dec/zI4xALNjDMDsGAPIDBYVLMA2bdqkEydOqGvXrpKkmjVr6uLFi/riiy/UpEkTubo6LiGxb98+BQQEyNfXVwEBAbnQMeA8nP8wO8YAzI4xALNjDCAzCAQKgLVr1+rkyZOKjY1Vq1atFBwcrMDAQF2/fl3Jycny9PS0D/iMfhEY3FsU+RjnP8yOMQCzYwzA7BgDuB8EAvncggUL9MILL6hs2bK6evWqChUqpKpVq2rEiBGqVq2afSXR5ORkubm5Sbp7OgjkF5z/MDvGAMyOMQCzYwzgfrGoYD6WlJSkzz77TPXr19fSpUt18uRJjRw5Ui4uLmrUqJHWrVsnF5eb/4nd3NyUkpIiSdqxY4eCg4PVr18//fDDD/btQH7C+Q+zYwzA7BgDMDvGAJwil9YugBPExsYaJUuWNF599VWH7UeOHDF69OhhuLm5GYsXLzYMwzDS0tIMwzAcFhEJDw83qlataly9ejXnmgachPMfZscYgNkxBmB2jAE4A/ND8rGAgACVLFlSv/32m65evWq/LUh4eLgmTpwoDw8PderUScuWLVPz5s2VlpYmV1dXpaSkyNXVVUeOHNGJEyfk7e2dy0cC3DvOf5gdYwBmxxiA2TEG4AxcMpDPnD59WocPH9bZs2dlsVjUsGFDbdmyRVFRUQ51QUFBGj16tJ599lm1b99ee/futU8ZuvWLQJLKlCmT48cAZBXnP8yOMQCzYwzA7BgDcLrcnqKAzJszZ44RGhpq+Pj4GOXKlTNGjRplJCQkGDVq1DCqV69unD9/3jCM/00JMgzD2L59uxEeHm48/fTTRkJCQm61Dtw3zn+YHWMAZscYgNkxBpAdmCGQTyxdulTdu3fXI488osGDB6to0aKaOHGiPvzwQ33wwQf6888/9fzzzyshIcHhtiE1a9bUU089paioKF26dCkXjwDIOs5/mB1jAGbHGIDZMQaQbXI7kcCdpaWlGYmJiUbr1q2N+vXrG6dOnTIMwzAuXrxoPPHEE8ZDDz1kREdHGz/++KNRtGhRo0GDBsbhw4cNm81m38cXX3xhuLq6Gr/88ktuHQaQJZz/MDvGAMyOMQCzYwwguzFDII+zWCzy8vLSH3/8oQcffFAhISEyDENBQUF6//33dejQIUVFRalZs2ZasGCBzpw5o2bNmumDDz7QsWPHtG/fPv3yyy9yd3dXqVKlcvtwgHvC+Q+zYwzA7BgDMDvGALIbgUA+cOPGDbm7u9u/NwxDhmEoJCREJUqU0NatWyVJdevW1bZt21SlShV9/vnnKleunP75z3/qP//5j0aNGsWiIciXOP9hdowBmB1jAGbHGEB2shiGYeR2E7i7n376SWvWrNGoUaPk7u5uvzaoXbt2Onv2rKKiomS1WuXqevNOkr/99pt27dolFxcXVatWTVWqVHG4ngjITzj/YXaMAZgdYwBmxxhAdnHN7QaQOU8++aRq1KghDw8PSVJaWppcXFxUpkwZ7du3T6mpqXJ3d5dhGDp37pwqV66sypUr53LXgHNw/sPsGAMwO8YAzI4xgOzCJQP5hMViUWBgYLrtjz/+uC5evKhz585Jkg4dOqRnnnlGzZo1k3RzShGQ33H+w+wYAzA7xgDMjjGA7MIMgXzKxeVmlhMUFKSrV68qISFB0dHRGjRokA4ePKiff/5ZkpgahAKJ8x9mxxiA2TEGYHaMATgLgUA+FxwcLElat26dNmzYoHXr1mnTpk2qVq1aLncGZD/Of5gdYwBmxxiA2TEGcL9YVDCfi4mJUYUKFZSSkqLU1FRFRUXp4Ycfzu22gBzB+Q+zYwzA7BgDMDvGAO4XMwTyOTc3N6Wlpenq1avat2+fHnroodxuCcgxnP8wO8YAzI4xALNjDOB+MUOgANi8ebMCAwNVsWLF3G4FyHGc/zA7xgDMjjEAs2MM4H4QCAAAAAAAYELcdhAAAAAAABMiEAAAAAAAwIQIBAAAAAAAMCECAQAAAAAATIhAAAAAAAAAEyIQAAAAAADAhAgEAABAlvTo0UMWiyW327irBg0aKDQ0NLfbAAAgzyEQAAAAAADAhAgEAAAA7oJZBgCAgohAAAAAAAAAEyIQAAAAAADAhAgEAAAogM6cOaNu3bqpcOHC8vLyUoMGDfTLL7841Hz99deyWCxav369EhISNGzYMFWoUEGdO3dOt79169apdu3a8vDwUJkyZfTll1/e9rXnz5+vWrVqydPTU4ULF1b37t31559/pqsLDQ1VgwYNJElr165VixYtFBwcrL1792b5uBcsWKAqVarIw8ND//jHP7RkyZIM665evaqhQ4eqXLly8vLyUnh4uAYPHqykpCR7TWRkpCwWiywWizZs2KCTJ0/av7/1c/srwzD0+eefq2rVqvLw8FCxYsXUr18/Xb16NcvHAwBAdnLN7QYAAIBznTx5Uv/85z/1xx9/6Omnn1bhwoW1cOFCNW7cWPPmzVP79u0d6mNjY/XYY48pOjpaNWrUUHh4uMPja9asUbNmzeTp6anOnTvrxo0beu2111S0aNF0r/3ee+9pyJAhqlq1qvr06aNTp05p7ty52r59u3bv3i1PT890z/nss8/Ur18/lS1bVtWqVZOXl1eWjnvWrFnq0aOHgoOD1a1bN/3xxx/q2LGjAgMD073uM888o9WrV6tp06Zq27atfv/9d73//vuKiYnRV199JUmqV6+e3nnnHUnS7NmzFRcXp759+9r3Ubp0aYd99unTR19++aXq1Kmj1157TQcOHNDkyZO1f/9+rVmzJl/ckQEAYDIGAAAoUFq1amVIMubOnWvfduLECeOBBx4wAgICjLi4OMMwDGPmzJmGJCM0NNRo0KCBceHChQz3V61aNcNisRhbtmyxb5sxY4YhyfjrnxLHjx83rFar0bhxYyM5Odm+fezYsYYkY/r06Q77LV26tFGiRAnDy8vLodessNlsRpEiRQwvLy/j2LFj9u0jRowwJBmlS5e2b9uzZ49htVqNZ5991mEfHTt2NNzd3Y2UlJR0+69fv77DPv5uw4YNhiSje/fuDttffPFFQ5KxZs2aLB0XAADZiUsGAAAoQGJjY7Vy5UrVqFFDXbp0sW8PDQ1V//79deXKFX3//fcOz7HZbFqyZImCg4PT7e/8+fPau3evnnjiCdWuXdu+vUePHgoLC3OoXbx4sVJTU+Xr66vIyEgNGzZMw4YN04kTJyRJGzduTLf/c+fOaeTIkQ69ZsWuXbt04cIFdejQwaGvQYMGydvb26H24YcfVkpKiubPny/p5lT/3bt3Kzo6WjabTefOnbvn11+wYIH937eOe9iwYbp8+bKkjI8dAIDcxiUDAAAUIEeOHJFhGKpatWq6x6pVqyZJOnTokMP2wYMHKyAgIMP9nTx5UpJUsWJFh+0Wi0WVK1fW8ePH7duOHj0qSVq6dKmWLl2abl/nz59Pt61o0aIaMGDAbY8ns27Xp7e3t8qWLau4uDiH7RcuXNCUKVO0du1a7dmzRwkJCbJarZKk1NTUe379W8c+a9asDB/P6NgBAMhtBAIAABRA93K9ekbhwS2GYUiS/c3yX2W0Tbr5aX316tUz9doVK1ZUoUKFMlV7J/fS55EjR/TYY4/pxo0bevrpp9WhQwf985//1Pfff6/Ro0ffVx+XLl1SYGDgfe0DAICcwiUDAAAUIOXKlZPFYtGvv/6a7rF9+/ZJSv8p+p2UKlVKknT48OF0jx04cMDh+1uLEf7+++8O29PS0vTZZ59p8eLFmX7de3W7Pm02m44dO+awbeLEibp8+bJ++OEHzZ49W/3791fNmjUd7jDwdy4ud/6T6XbHHhcXp8mTJ+vnn3/O9LEAAJBTCAQAAChAAgMD1bJlS+3YsUPz5s2zbz916pQ++eQTBQQEqFWrVpneX0hIiCpWrKj169drz5499u3fffdduje/Tz/9tKxWqz7++GOHW+0tXbpUffv2zdbr6GvWrKkHHnhACxYs0OnTp+3bJ02apPj4eIfaP/74Q5JUsmRJ+7aNGzdqypQpt93/gw8+qAsXLjiEBikpKfZ/P/PMM5KkCRMmKDk52b59+vTp6tevX7rwBACAvIBLBgAAKGAmT56sXbt2qUuXLlqwYIECAwO1aNEixcfHa968efLz87un/U2cOFFt27ZVgwYN1L59eyUnJ2vevHkKDAxUbGysvS4sLEyjRo3SsGHDVLlyZbVs2VJXr17V/PnzVbJkSQ0aNMjZh2rn4eGhsWPH6tVXX1XNmjXVtm1bXbhwQcuWLdMDDzzgUPvkk09qxYoVatWqlVq0aKEDBw7op59+sv9c/h4gSNLzzz+vWbNmqXHjxqpXr55iYmL066+/aseOHZKk+vXrq3fv3vrqq69UrVo1Pfnkkzp//rwWL16sKlWqKCIiItuOHQCArGKGAAAABUzp0qW1fft2Pf/881q3bp3mzJmjKlWqaM2aNWrfvv09769Vq1ZauXKlypcvr2+//Vbr16/X2LFj1bp163S177zzjr799lsFBwdrxowZ+u9//6uOHTtqy5YtKl68uDMO77b69Omj2bNnq3Dhwvr666+1b98+zZw5M90aCX379tXYsWN1/fp1TZ48WdHR0frggw/00UcfSZKWLFmSbt9PPvmk5syZo4SEBH388cdavHixKlWq5FAzdepU/fvf/5aLi4u+/PJLbd++Xa+++qrWr18vHx+f7DtwAACyyGLcWoUHAAAAAACYBpcMAACAPGnt2rVau3btXevKlCnDlHwAALKAQAAAAORJv/zyi8aOHXvXuvr16xMIAACQBVwyAAAAAACACbGoIAAAAAAAJkQgAAAAAACACREIAAAAAABgQgQCAAAAAACYEIEAAAAAAAAmRCAAAAAAAIAJEQgAAAAAAGBCBAIAAAAAAJjQ/wNwZcPfWILGxQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "width = 0.35\n",
    "selected_dates = ['2018-03-01', '2018-03-08', '2018-03-15', '2018-03-22', '2018-03-29']\n",
    "selected_indices = [dates.get_loc(date) for date in selected_dates]\n",
    "\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.bar(x - width / 2, counts1, width, label='Type 1')\n",
    "plt.bar(x + width / 2, counts2, width, label='Type 2')\n",
    "plt.ylabel('Sales in Quantity',fontdict = {'size':15})\n",
    "plt.xlabel('order_date',fontdict = {'size':15})\n",
    "plt.xticks(selected_indices,selected_dates,size = 13,rotation=45)\n",
    "plt.yticks(size = 13)\n",
    "plt.legend(fontsize = 14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3a648850719c8a77",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Table 5 Delivery--物流送货"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "564b3bb5da4c99da",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:39:07.697658Z",
     "start_time": "2024-02-29T04:39:07.420633800Z"
    },
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 'delivery' table  配送数据\n",
    "delivery = pd.read_csv('./JD_data/JD_delivery_data.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6f2b662742b6712",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "包裹从仓库发出的时间（ship_out_time），包裹到达配送站的时间（arr_station_time），以及包裹成功送达客户的时间（arr_time）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "4f33fd16720f1291",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:39:45.308760700Z",
     "start_time": "2024-02-29T04:39:45.144237Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>package_ID</th>\n",
       "      <th>order_ID</th>\n",
       "      <th>type</th>\n",
       "      <th>ship_out_time</th>\n",
       "      <th>arr_station_time</th>\n",
       "      <th>arr_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>dc3d6d2258</td>\n",
       "      <td>dc3d6d2258</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-01 08:00:00</td>\n",
       "      <td>2018-03-01 15:00:00</td>\n",
       "      <td>2018-03-01 18:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>19802a570c</td>\n",
       "      <td>19802a570c</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-01 10:00:00</td>\n",
       "      <td>2018-03-01 15:00:00</td>\n",
       "      <td>2018-03-01 17:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>e22627af66</td>\n",
       "      <td>e22627af66</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-01 11:00:00</td>\n",
       "      <td>2018-03-01 15:00:00</td>\n",
       "      <td>2018-03-01 17:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>50d11a586d</td>\n",
       "      <td>50d11a586d</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-01 10:00:00</td>\n",
       "      <td>2018-03-01 16:00:00</td>\n",
       "      <td>2018-03-01 19:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>a3bfe38bf4</td>\n",
       "      <td>a3bfe38bf4</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-01 11:00:00</td>\n",
       "      <td>2018-03-01 16:00:00</td>\n",
       "      <td>2018-03-01 17:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293224</th>\n",
       "      <td>6130c1b7d1</td>\n",
       "      <td>6130c1b7d1</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-04-01 09:00:00</td>\n",
       "      <td>2018-04-05 18:00:00</td>\n",
       "      <td>2018-04-07 10:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293225</th>\n",
       "      <td>77df47b5cb</td>\n",
       "      <td>ffe59a02ed</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-03-30 11:00:00</td>\n",
       "      <td>2018-04-06 06:00:00</td>\n",
       "      <td>2018-04-07 15:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293226</th>\n",
       "      <td>cb319102f1</td>\n",
       "      <td>cb319102f1</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-04-01 10:00:00</td>\n",
       "      <td>2018-04-07 11:00:00</td>\n",
       "      <td>2018-04-07 15:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293227</th>\n",
       "      <td>0fe3bbcfd8</td>\n",
       "      <td>0fe3bbcfd8</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-31 13:00:00</td>\n",
       "      <td>2018-04-04 22:00:00</td>\n",
       "      <td>2018-04-07 11:00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>293228</th>\n",
       "      <td>d22fa05841</td>\n",
       "      <td>d22fa05841</td>\n",
       "      <td>1</td>\n",
       "      <td>2018-03-25 09:00:00</td>\n",
       "      <td>2018-03-26 09:00:00</td>\n",
       "      <td>2018-04-07 14:00:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>293229 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        package_ID    order_ID  type        ship_out_time  \\\n",
       "0       dc3d6d2258  dc3d6d2258     1  2018-03-01 08:00:00   \n",
       "1       19802a570c  19802a570c     1  2018-03-01 10:00:00   \n",
       "2       e22627af66  e22627af66     1  2018-03-01 11:00:00   \n",
       "3       50d11a586d  50d11a586d     1  2018-03-01 10:00:00   \n",
       "4       a3bfe38bf4  a3bfe38bf4     1  2018-03-01 11:00:00   \n",
       "...            ...         ...   ...                  ...   \n",
       "293224  6130c1b7d1  6130c1b7d1     1  2018-04-01 09:00:00   \n",
       "293225  77df47b5cb  ffe59a02ed     0  2018-03-30 11:00:00   \n",
       "293226  cb319102f1  cb319102f1     1  2018-04-01 10:00:00   \n",
       "293227  0fe3bbcfd8  0fe3bbcfd8     1  2018-03-31 13:00:00   \n",
       "293228  d22fa05841  d22fa05841     1  2018-03-25 09:00:00   \n",
       "\n",
       "           arr_station_time             arr_time  \n",
       "0       2018-03-01 15:00:00  2018-03-01 18:00:00  \n",
       "1       2018-03-01 15:00:00  2018-03-01 17:00:00  \n",
       "2       2018-03-01 15:00:00  2018-03-01 17:00:00  \n",
       "3       2018-03-01 16:00:00  2018-03-01 19:00:00  \n",
       "4       2018-03-01 16:00:00  2018-03-01 17:00:00  \n",
       "...                     ...                  ...  \n",
       "293224  2018-04-05 18:00:00  2018-04-07 10:00:00  \n",
       "293225  2018-04-06 06:00:00  2018-04-07 15:00:00  \n",
       "293226  2018-04-07 11:00:00  2018-04-07 15:00:00  \n",
       "293227  2018-04-04 22:00:00  2018-04-07 11:00:00  \n",
       "293228  2018-03-26 09:00:00  2018-04-07 14:00:00  \n",
       "\n",
       "[293229 rows x 6 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "delivery"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "774b879a-537f-4cd1-b93a-dc2d5fcb450a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "package_ID          0\n",
       "order_ID            0\n",
       "type                0\n",
       "ship_out_time       0\n",
       "arr_station_time    0\n",
       "arr_time            0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "delivery.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "1428577b-46e6-47e0-8ce5-dfc487b80e31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "package_ID\n",
      "dc3d6d2258    1\n",
      "9150cbc5de    1\n",
      "f426b44a62    1\n",
      "362da851c4    1\n",
      "708ef6aba7    1\n",
      "             ..\n",
      "c1c2875411    1\n",
      "274cad754e    1\n",
      "155b1e4fbe    1\n",
      "2f7f888609    1\n",
      "d22fa05841    1\n",
      "Name: count, Length: 293229, dtype: int64\n",
      "order_ID\n",
      "44c000ca5e    4\n",
      "c039e26867    3\n",
      "09af755b7f    2\n",
      "f4c4f67220    2\n",
      "54381bee6c    2\n",
      "             ..\n",
      "81a484402b    1\n",
      "2adae7dd2b    1\n",
      "a997ce5a49    1\n",
      "c10a8d23bb    1\n",
      "d22fa05841    1\n",
      "Name: count, Length: 293204, dtype: int64\n",
      "type\n",
      "1    244333\n",
      "0     48896\n",
      "Name: count, dtype: int64\n",
      "ship_out_time\n",
      "2018-03-01 16:00:00    1667\n",
      "2018-03-01 14:00:00    1514\n",
      "2018-03-01 15:00:00    1505\n",
      "2018-03-28 14:00:00    1379\n",
      "2018-03-08 16:00:00    1306\n",
      "                       ... \n",
      "2018-04-02 21:00:00       1\n",
      "2018-03-25 03:00:00       1\n",
      "2018-03-20 04:00:00       1\n",
      "2018-03-24 02:00:00       1\n",
      "2018-04-05 10:00:00       1\n",
      "Name: count, Length: 760, dtype: int64\n",
      "arr_station_time\n",
      "2018-03-29 07:00:00    4183\n",
      "2018-04-01 07:00:00    4041\n",
      "2018-03-09 07:00:00    3959\n",
      "2018-03-31 07:00:00    3920\n",
      "2018-03-28 07:00:00    3820\n",
      "                       ... \n",
      "2018-04-05 16:00:00       1\n",
      "2018-03-15 22:00:00       1\n",
      "2018-03-28 21:00:00       1\n",
      "2018-04-03 00:00:00       1\n",
      "2018-04-07 11:00:00       1\n",
      "Name: count, Length: 832, dtype: int64\n",
      "arr_time\n",
      "2018-03-09 12:00:00    1959\n",
      "2018-03-09 11:00:00    1758\n",
      "2018-03-08 12:00:00    1741\n",
      "2018-03-29 11:00:00    1720\n",
      "2018-03-29 12:00:00    1692\n",
      "                       ... \n",
      "2018-03-14 06:00:00       1\n",
      "2018-03-15 07:00:00       1\n",
      "2018-03-15 00:00:00       1\n",
      "2018-03-16 07:00:00       1\n",
      "2018-04-07 19:00:00       1\n",
      "Name: count, Length: 695, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in delivery.columns:\n",
    "    print(delivery[i].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e36cb6f12cb8101b",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Table 6 Inventory--库存"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94f64209d33884e0",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "仅公开每天结束时库存的可用性，而不是库存数量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "6790fa36556654ea",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T04:44:58.831724700Z",
     "start_time": "2024-02-29T04:44:58.769916Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dc_ID</th>\n",
       "      <th>sku_ID</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9</td>\n",
       "      <td>50f6f91962</td>\n",
       "      <td>2018-03-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>7f0ddbcdde</td>\n",
       "      <td>2018-03-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>8ad5789d74</td>\n",
       "      <td>2018-03-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>468d34eda4</td>\n",
       "      <td>2018-03-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9</td>\n",
       "      <td>460afaddb6</td>\n",
       "      <td>2018-03-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136074</th>\n",
       "      <td>10</td>\n",
       "      <td>eb61307960</td>\n",
       "      <td>2018-03-31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136075</th>\n",
       "      <td>10</td>\n",
       "      <td>7c38bf94e9</td>\n",
       "      <td>2018-03-31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136076</th>\n",
       "      <td>10</td>\n",
       "      <td>66e8497bed</td>\n",
       "      <td>2018-03-31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136077</th>\n",
       "      <td>10</td>\n",
       "      <td>adfedb6893</td>\n",
       "      <td>2018-03-31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136078</th>\n",
       "      <td>10</td>\n",
       "      <td>8da781e2bd</td>\n",
       "      <td>2018-03-31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>136079 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        dc_ID      sku_ID        date\n",
       "0           9  50f6f91962  2018-03-01\n",
       "1           9  7f0ddbcdde  2018-03-01\n",
       "2           9  8ad5789d74  2018-03-01\n",
       "3           9  468d34eda4  2018-03-01\n",
       "4           9  460afaddb6  2018-03-01\n",
       "...       ...         ...         ...\n",
       "136074     10  eb61307960  2018-03-31\n",
       "136075     10  7c38bf94e9  2018-03-31\n",
       "136076     10  66e8497bed  2018-03-31\n",
       "136077     10  adfedb6893  2018-03-31\n",
       "136078     10  8da781e2bd  2018-03-31\n",
       "\n",
       "[136079 rows x 3 columns]"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 'inventory' table 库存数据\n",
    "inventory = pd.read_csv('./JD_data/JD_inventory_data.csv')\n",
    "inventory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "1b0e23c5-ed7f-4887-ab46-740452163192",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dc_ID     0\n",
       "sku_ID    0\n",
       "date      0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inventory.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "02bd8790-e105-42f0-98fc-468007344ce5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dc_ID\n",
      "10    6926\n",
      "2     6871\n",
      "5     6770\n",
      "3     6531\n",
      "7     6483\n",
      "9     6479\n",
      "24    6364\n",
      "4     5884\n",
      "20    3205\n",
      "44    2755\n",
      "31    2731\n",
      "6     2670\n",
      "43    2639\n",
      "55    2630\n",
      "42    2575\n",
      "41    2502\n",
      "28    2500\n",
      "50    2442\n",
      "36    2409\n",
      "39    2372\n",
      "52    2347\n",
      "53    2289\n",
      "40    2222\n",
      "45    2199\n",
      "25    2192\n",
      "32    2189\n",
      "26    2178\n",
      "46    2136\n",
      "37    2107\n",
      "38    2054\n",
      "61    2026\n",
      "47    2019\n",
      "67    1983\n",
      "54    1974\n",
      "51    1952\n",
      "64    1783\n",
      "11    1734\n",
      "13    1675\n",
      "33    1645\n",
      "34    1580\n",
      "1     1548\n",
      "35    1502\n",
      "14    1281\n",
      "8     1260\n",
      "19    1246\n",
      "12    1046\n",
      "66     906\n",
      "15     896\n",
      "21     889\n",
      "27     784\n",
      "58     263\n",
      "59     187\n",
      "56     133\n",
      "65      48\n",
      "57      37\n",
      "63      31\n",
      "Name: count, dtype: int64\n",
      "sku_ID\n",
      "623d0a582a    1529\n",
      "fc5289b139    1497\n",
      "3c79df1d80    1417\n",
      "d47c6ca631    1398\n",
      "7e4cb4952a    1349\n",
      "              ... \n",
      "3006be8d9d       1\n",
      "baf3fbb0be       1\n",
      "51dac7e18e       1\n",
      "d14dfe97b2       1\n",
      "6bfa731701       1\n",
      "Name: count, Length: 390, dtype: int64\n",
      "date\n",
      "2018-03-31    5159\n",
      "2018-03-30    4963\n",
      "2018-03-29    4840\n",
      "2018-03-27    4777\n",
      "2018-03-24    4757\n",
      "2018-03-22    4750\n",
      "2018-03-28    4741\n",
      "2018-03-23    4736\n",
      "2018-03-26    4732\n",
      "2018-03-25    4703\n",
      "2018-03-21    4695\n",
      "2018-03-20    4591\n",
      "2018-03-19    4538\n",
      "2018-03-18    4491\n",
      "2018-03-17    4457\n",
      "2018-03-16    4353\n",
      "2018-03-15    4275\n",
      "2018-03-14    4260\n",
      "2018-03-05    4191\n",
      "2018-03-06    4181\n",
      "2018-03-13    4171\n",
      "2018-03-04    4136\n",
      "2018-03-03    4098\n",
      "2018-03-12    4063\n",
      "2018-03-11    4057\n",
      "2018-03-02    4043\n",
      "2018-03-10    3972\n",
      "2018-03-07    3919\n",
      "2018-03-01    3910\n",
      "2018-03-09    3792\n",
      "2018-03-08    3728\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in inventory.columns:\n",
    "    print(inventory[i].value_counts())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8e9315c2cba0064",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Tabel 7 Network 网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "bbc570a0c630021c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T06:02:29.066974500Z",
     "start_time": "2024-02-29T06:02:28.987589700Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>region_ID</th>\n",
       "      <th>dc_ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>3</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>3</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>3</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>3</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>3</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>4</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>4</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>4</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>4</td>\n",
       "      <td>63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>4</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>4</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>5</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>5</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>5</td>\n",
       "      <td>54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>5</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>5</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>7</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>7</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>7</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>7</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>7</td>\n",
       "      <td>67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>7</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>9</td>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>9</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>9</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>9</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>9</td>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>9</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>9</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>10</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>10</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>10</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>24</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>24</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>24</td>\n",
       "      <td>52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>24</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>24</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    region_ID  dc_ID\n",
       "0           2     57\n",
       "1           2     43\n",
       "2           2     42\n",
       "3           2     66\n",
       "4           2     20\n",
       "5           2     58\n",
       "6           2     15\n",
       "7           2      6\n",
       "8           2      2\n",
       "9           3     64\n",
       "10          3     14\n",
       "11          3     33\n",
       "12          3     34\n",
       "13          3     35\n",
       "14          3      3\n",
       "15          4     45\n",
       "16          4     44\n",
       "17          4     51\n",
       "18          4     63\n",
       "19          4     19\n",
       "20          4      4\n",
       "21          4     12\n",
       "22          4     28\n",
       "23          5      5\n",
       "24          5     13\n",
       "25          5     55\n",
       "26          5     54\n",
       "27          5     26\n",
       "28          5     65\n",
       "29          7     53\n",
       "30          7     39\n",
       "31          7      8\n",
       "32          7     46\n",
       "33          7     31\n",
       "34          7     67\n",
       "35          7      1\n",
       "36          7      7\n",
       "37          7     59\n",
       "38          9      9\n",
       "39          9     56\n",
       "40          9     25\n",
       "41          9     27\n",
       "42          9     32\n",
       "43          9     61\n",
       "44          9     36\n",
       "45          9     50\n",
       "46         10     37\n",
       "47         10     11\n",
       "48         10     10\n",
       "49         10     38\n",
       "50         10     47\n",
       "51         24     40\n",
       "52         24     41\n",
       "53         24     52\n",
       "54         24     24\n",
       "55         24     21"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 'network' table   网络数据\n",
    "network = pd.read_csv('./JD_data/JD_network_data.csv')\n",
    "network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "9b07ad7344054168",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T06:19:31.751921400Z",
     "start_time": "2024-02-29T06:19:31.705711400Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "region_ID\n",
       "2     9\n",
       "7     9\n",
       "4     8\n",
       "9     8\n",
       "3     6\n",
       "5     6\n",
       "10    5\n",
       "24    5\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "counts = network['region_ID'].value_counts()\n",
    "counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "284a6a36-cb61-4ef7-a8ec-b5b5633a7b65",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "region_ID    0\n",
       "dc_ID        0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "e9d44d86-d85e-4182-ba62-62827823433f",
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "region_ID\n",
      "2     9\n",
      "7     9\n",
      "4     8\n",
      "9     8\n",
      "3     6\n",
      "5     6\n",
      "10    5\n",
      "24    5\n",
      "Name: count, dtype: int64\n",
      "dc_ID\n",
      "57    1\n",
      "43    1\n",
      "39    1\n",
      "8     1\n",
      "46    1\n",
      "31    1\n",
      "67    1\n",
      "1     1\n",
      "7     1\n",
      "59    1\n",
      "9     1\n",
      "56    1\n",
      "25    1\n",
      "27    1\n",
      "32    1\n",
      "61    1\n",
      "36    1\n",
      "50    1\n",
      "37    1\n",
      "11    1\n",
      "10    1\n",
      "38    1\n",
      "47    1\n",
      "40    1\n",
      "41    1\n",
      "52    1\n",
      "24    1\n",
      "53    1\n",
      "65    1\n",
      "26    1\n",
      "35    1\n",
      "42    1\n",
      "66    1\n",
      "20    1\n",
      "58    1\n",
      "15    1\n",
      "6     1\n",
      "2     1\n",
      "64    1\n",
      "14    1\n",
      "33    1\n",
      "34    1\n",
      "3     1\n",
      "54    1\n",
      "45    1\n",
      "44    1\n",
      "51    1\n",
      "63    1\n",
      "19    1\n",
      "4     1\n",
      "12    1\n",
      "28    1\n",
      "5     1\n",
      "13    1\n",
      "55    1\n",
      "21    1\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for i in network.columns:\n",
    "    print(network[i].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "67fce9f6e365e45d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T06:20:10.620847700Z",
     "start_time": "2024-02-29T06:20:10.584845600Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 3, 4, 5, 6, 7]"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "categories = list(range(len(counts)))\n",
    "categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "67a70a1ff40cdd33",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-02-29T06:26:49.889351400Z",
     "start_time": "2024-02-29T06:26:49.745908400Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Region ID')"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 4))\n",
    "plt.bar(categories, counts, width=0.4)\n",
    "plt.xticks(categories, ['2', '3', '4', '5', '7', '9', '10', '24'], size=12)\n",
    "plt.yticks(size=12)\n",
    "plt.ylabel('Number of Districts', fontdict={'size': 12})\n",
    "plt.xlabel('Region ID', fontdict={'size': 12})"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
